Суббота, 20 Апреля 2024, 00:59

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » 2D-движки для создания игр » LibGdx. RayCast
LibGdx. RayCast
FlyOfFlyДата: Воскресенье, 22 Апреля 2018, 03:28 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Моя цель состоит в том, что бы проверить попадает ли игрок в поле зрение. Если с углом обзора проблем нет, то вот с проверкой: есть ли преграды между игроком и врагом есть. Для того что бы это проверить, я в время теста сначала пускаю лучу в направление игрока:

Код
       

        isView = false;
        model!!.body!!.world.rayCast(this, position, playerPos);
        if(isView) {
         //идём в сторону врага
       }

А потом проверяю объект с которым столкнулся луч, есть ли луч столкнулся с игроком, то следовательно враг видит игрока
Код
   override fun reportRayFixture(fixture: Fixture, point: Vector2, normal: Vector2, fraction: Float): Float {
        isView  = (fixture === player!!.fixture)
        return 0.0f;
    }

Но, враг не видит box2D объекты и думает что всегда видит игрока
last2424Дата: Воскресенье, 22 Апреля 2018, 11:48 | Сообщение # 2
30 мл. блоков
Сейчас нет на сайте
Ну, ты пускаешь луч от позиции врага до позиции игрока, не?
Конечно он всегда будет его видеть.


Предупреждение: всё что я написал в зачёркнутом виде является шуткой и никак не пытает обидеть того к кому обращаются.(нет)

Сообщение отредактировал last2424 - Воскресенье, 22 Апреля 2018, 11:49
FlyOfFlyДата: Воскресенье, 22 Апреля 2018, 17:05 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Цитата last2424 ()
Ну, ты пускаешь луч от позиции врага до позиции игрока, не?
Конечно он всегда будет его видеть.

Так, суть RayCast как раз в том. что если на пути луча есть препятствие, то он должен остановиться и в fixture передать этот объект. Разве нет?

Добавлено (22 Апреля 2018, 17:05)
---------------------------------------------
ОБОЖАЮ ДОКИ, вот просто обожаю
Функция должна возвращать 1, что бы остановить луч, а теперь лезем в доки:

Код
-1 to filter, 0 to terminate, fraction to clip the ray for closest hit, 1 to continue

КАКОГО ?
Форум игроделов » Движки для разработки игр и сложные системы разработки » 2D-движки для создания игр » LibGdx. RayCast
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг