Проверка на столкновение

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.

Проверка на столкновение

Сообщение MrDead » 08 июн 2014, 17:26

Есть массив со списком объектов на сцене характеризующую плоскую платформу. При нажатии стрелок, эти объекты двигаются, создавая перемещение. В центре сцены есть объект - игрок. Его координаты остаются неизменны, т.к он не входит в массив, а стоит на месте, но при этом ощущение что он движется.

  1. public function wallplayer(e:Event):void
  2.     {
  3.             for (i = 0; i < platform_obj_wall.length; i++)
  4.             {
  5.                 if (bg_igrok.hitTestObject(platform_obj_wall[i]))
  6.                 {
  7.             trace("Набежали на стену");
  8.                 }
  9.  
  10.         }
  11.     }

Как мне реализовать столкновение игрока со стеной? Трейс работает, то есть если игрок набегает на объект из массива то выводится Набежали на стену. Как мне сделать так, чтобы игрок не мог пройти через эти стены? Что надо дописать?
Само перемещение реализуется таким способом

  1. if (right_press_platform) //Двигаем платформу в правую сторону
  2.             {
  3.                 for (i = 0; i < len_1; i++)
  4.                 {
  5.                     bg_locations.bg_conf.platform_obj[i].x -= speed_platform;
  6.                     Bg_Location.bg_play.rotation = -90;
  7.                 }
  8.                
  9.                 for (i = 0; i < len_2; i++)
  10.                 {
  11.                 bg_locations.bg_conf.platform_obj_wall[i].x -= speed_platform;
  12.                
  13.                 }
  14.                
  15.             }

Нужно как-то сделать так, чтобы игрок не мог пройти через стены, как только он врезается в одну из них, то пройти дальше не должен, соответственно платформа перестает двигаться, если он идет не на стену, то движение продолжается. Чего только не поперепробовал не получается
MrDead

 
Автор темы
Сообщения: 103
Зарегистрирован: 13 сен 2012, 00:46
Благодарил (а): 20 раз.
Поблагодарили: 0 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Проверка на столкновение

Сообщение sasha^ » 08 июн 2014, 18:06

используй box2d или другие физ. движки и будет тебе счастье :)
не выдумывай велосипед, если не знаешь физики и таких простых вещей...
а то потом захочешь и гравитацию и пр. фигню сделать, и будешь спрашивать (ну или часами думать сам) над мелочью...
а в любом физ. движке просто пишешь что да как должно себя вести и все!
это дружеский совет....
sasha^

 
Сообщения: 711
Зарегистрирован: 10 сен 2012, 16:52
Благодарил (а): 1 раз.
Поблагодарили: 136 раз.

Re: Проверка на столкновение

Сообщение MrDead » 08 июн 2014, 18:29

Гравитация мне не нужна, мне нужно только столкновение, если всё так просто, то вас наверняка не затруднит помочь?)
MrDead

 
Автор темы
Сообщения: 103
Зарегистрирован: 13 сен 2012, 00:46
Благодарил (а): 20 раз.
Поблагодарили: 0 раз.

Re: Проверка на столкновение

Сообщение Casperovskii » 08 июн 2014, 22:46

MrDead
Вставь условие, если координаты стены становятся равны координатам игрока, то в этому сторону движение равно 0.
Casperovskii

 
Сообщения: 429
Зарегистрирован: 22 июн 2012, 17:50
Благодарил (а): 11 раз.
Поблагодарили: 43 раз.


Вернуться в Программирование на Flash



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1