【问题标题】:Destroying an object on the stage issue销毁舞台问题上的对象
【发布时间】:2013-12-10 17:57:17
【问题描述】:

我正在尝试通过在线教程的帮助创建一个简单的塔防射击游戏。但本教程并未解决问题。

此代码应该在离开舞台后移除发射的子弹,但子弹只有在离开舞台的顶部或左侧时才会被移除。

我的理解是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) 是左上角,(stage.stageWidth, stage.stageHeight) 是右下角,顺便说一句。
  • 知道这一点非常有用。泰

标签: actionscript-3


【解决方案1】:

子弹的坐标系不一定与舞台的坐标系相同——它们是附加到舞台还是其他电影剪辑?

我建议调试一下,或者添加trace语句,看看上面代码中子弹的坐标,stageWidth和Height是什么:

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

【讨论】:

  • 跟踪向我展示了正在发生的事情。原来子弹被摧毁了,但舞台正在扩大到底部和右侧的窗口边缘,所以我无法判断它们是什么。非常感谢
猜你喜欢
  • 1970-01-01
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-11
  • 2013-03-21
  • 1970-01-01
相关资源
最近更新 更多