![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Oct 2010
Сообщений: 14
|
В игре делаю пушку которая стреляет пулями. При попадании пули в стену, пуля должна взрываться. пишу следующий код:
Пули выстреливают. Если выстрелить только одну пулю, она врежется в стену и взорвется, но если выстрелить сразу много пуль, то они пролетят сквозь стену и только последняя из них врежется в стену и взорвется. Что тут можно сделать? function shoot():void { //Выстрел из пушки trace("Pif->"); bulletclip = new BulletClip(); //Новая пуля stage.addChild(bulletclip); //Добавляем на сцену bulletclip.x = cannon.x; bulletclip.y = cannon.y-38; TweenLite.to(bulletclip, 2, {y:-100}); //Передвигаем пулю с помощью TweenLite stage.addEventListener(Event.ENTER_FRAME,bullet_border); //Проверка пули на столкновение со стеной function bullet_border(e:Event) { if(bulletclip.y <= 0) { stage.removeEventListener(Event.ENTER_FRAME,bullet_border); bulletstop(); //Функция останавливает и взрывает пулю } } } |
|
|||||
|
Регистрация: Apr 2010
Сообщений: 219
|
Все правильно. Вы же переопределяете пулю и поэтому когда вы обрабатываете ее столкновение сос теной это будет именно последняя пуля.
Заносите пули в массив и пробегйтесь по всем. |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 14
|
Я заранее не знаю сколько будет выпущено пуль.
|
|
|||||
|
Регистрация: Apr 2010
Сообщений: 219
|
А вам и не надо, но при создании пули вы ее заносите в массив. При проверке проверяете все содержимое массива. А при удалении пули - удаляете ее из массива.
|
|
|||||
|
Регистрация: Oct 2010
Сообщений: 14
|
а можно примерчик, чтото не получается. вобще никак(
Последний раз редактировалось Antony; 20.10.2010 в 16:00. |
|
|||||
private var _bullets:Array = []; ... private function shoot():void { //Выстрел из пушки trace("Pif->"); bulletclip = new BulletClip(); //Новая пуля stage.addChild(bulletclip); //Добавляем на сцену _bullets.push(bulletclip); //Добавляем пулю в массив bulletclip.x = cannon.x; bulletclip.y = cannon.y-38; ... } Добавлено через 4 минуты Заодно внимательно почитайте вот этот топик. |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 14
|
Благодарю за помощь, все сделал
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|