【发布时间】:2016-04-14 22:38:01
【问题描述】:
我正在使用 flash cs4 开发一个平台游戏,我遇到了这个错误。当玩家射击敌人并且我的子弹类与我的敌人类碰撞时会发生这种情况。这是我的代码,错误在enemyDead[i] = true;线
if(enemyList.length>0) {
for (var i:int = 0; i < enemyList.length; i++) {
if (bulletList.length>0) {
for (var j:int = 0; j < bulletList.length; j++) {
if (enemyList[i].hitTestObject(bulletList[j])) {
trace("Bullet and Enemy are colliding");
enemyList[i].gotoAndPlay("dead");
enemyDead[i] = true;
bulletList[j].removeSelf();
enemyList[i].xSpeedConst=0;
} else if(enemyList.length>0){
enemyDead = false;
}
}
}
}
}
}
enemyDead 当然是一个布尔变量,它似乎是导致问题的原因。我已经为此修复工作了几个小时,但不知道(我是菜鸟)一切如何正常工作,除了敌人一直在移动,即使我将 xspeedConst 属性设置为 0 并且子弹不会自行移除,请帮助
【问题讨论】:
-
我首先尝试添加enemyDead = true;没有 [i] 但效果很糟糕,非常感谢任何帮助
-
enemyDead是什么?一个数组还是一个布尔值? -
请使用调试器并指出引发错误的确切行。很可能您打算这样做:
enemyList[i].enemyDead = true;(因为您的enemyDead 标志应该是敌人对象的属性)。或者,如果它是一个单独的数组,那么你的 else if 应该是:enemyDead[i] = false;否则你将它设置为布尔值而不是数组 -
enemyDead 是一个布尔值,我应该把它变成一个数组吗?我试过你的enemyList[i].enemyDead = true;它说不能创造属性敌人死敌
-
你必须打开你的敌人类并添加属性。
public var enemyDead:Boolean = false;
标签: actionscript-3 flash