2013-12-10 4 views
0

Я пытаюсь создать простую игру Tower Defense Shooting с помощью онлайн-учебника. Однако в учебнике не рассматривается проблема.Уничтожение объекта на сцене

Этот код должен удалять пулю, выпущенную после ее выхода на сцену, но пуля удаляется только при прохождении через верхнюю или левую стороны сцены.

Полагаю, что stageWidth/Height должны обрабатывать верхнюю и левую стороны, а <0 обрабатывает нижнее и правое. Я не вижу ничего такого, что было бы проблемой. Может ли кто-нибудь понять, почему он не работает на нижней или правой сторонах сцены?

if (bullet.x < 0 || bullet.x > stage.stageWidth || bullet.y < 0 || bullet.y > stage.stageHeight){ 
      bullet.removeEventListener(Event.ENTER_FRAME, moveBullet); 
      bullet.parent.removeChild(bullet); 
      bullet = null; 
      } 
+0

(0,0) является верхний левый, (этап .stageWidth, stage.stageHeight) внизу справа, кстати. – Esaevian

+0

, что очень полезно знать. Ty – Rith

ответ

0

пуля система координат не обязательно совпадает с stage's-- они прикрепленными к сцене или, возможно, какой-то другой MovieClip?

Я хотел бы предложить отладку, или добавление операторов трассировки, чтобы увидеть, какие координаты пули, а stageWidth и высота в приведенном выше коде:

trace("bullet.x="+bullet.x+", stage.stageWidth="+stage.stageWidth); 
+0

След показал мне, что происходит. Оказалось, что пули разрушались, но сцена расширялась до края окна на нижней и правой сторонах, поэтому я не мог сказать, что они были. Огромное спасибо – Rith

Смежные вопросы