这是我的代码的一部分,但敌人仍然没有跟随飞船。知道该怎么办吗?舰船通过加速度计移动,敌人从-y掉落到屏幕下方。一些帮助将不胜感激
//Move Enemies towards Player//
var speed = 5;
if( enemies.x < ship.x )
{
if( enemies.x + enemies.speedX > ship.x )
{
enemies.x = ship.x;
}
else
{
enemies.x += enemies.speedX;
}
}
else if( enemies.x > ship.x )
{
if( enemies.x - enemies.speedX < ship.x )
{
enemies.x = ship.x;
}
else
{
enemies.x -= enemies.speedX;
}
}
if( enemies.y < ship.y )
{
if( enemies.y + enemies.speedY > ship.y )
{
enemies.y = ship.y;
}
else
{
enemies.y += enemies.speedY;
}
}
else if( enemies.y > ship.y )
{
if( enemies.y - enemies.speedY < ship.y )
{
enemies.y = ship.y;
}
else
{
enemies.y -= enemies.speedY;
}
}
//move enemies//
if (enemies.length != 0) {
for (var j: int = 0; j < enemies.length; j++) {
enemies[j].y += 5;
}
}
预先感谢...
答案 0 :(得分:0)
我同意Organis。敌人似乎确实是一个数组,所以要添加它们的x和y,就需要敌人[0] .x。为了解决这个问题,我将x位置放在y坐标的for循环中。
或者,根据您拥有多少个敌人,我会向敌人添加一个类别。这样一来,敌人便会生成并知道如何通过其职业来做。我认为这会更简单,因为当敌人被移走时不需要整理阵列。您还可以对其进行调整,以使每个敌人都有一个随机的速度值,从而获得更动态的结果。
祝你好运
编辑:
好的,那是我的坏事,只是意识到我不太清楚。我的意思是:
//move enemies//
if (enemies.length != 0) {
for (var j: int = 0; j < enemies.length; j++) {
enemies[j].y += 5;
}
}
工作正常。一旦被引用,每个敌人都会移动5。为什么不将其余代码复制并粘贴到此循环中,而不是使用敌人。x使用敌人[j] .x。
我确实认为,针对每个单独的敌人,这是一个更好的解决方案,并且我认为您应该对此进行研究。
希望更有意义,并再次道歉。