我一直在从事一些大学项目的游戏项目。我的问题是我有左右移动的敌人列表,当触摸左边缘或右边缘时有点下降,我想要他们做的是在游戏持续进行时向随机敌人射击子弹,但我设法要显示并从随机敌人处射出的子弹,就是这样:'D,它只走了一次,需要在游戏持续进行的同时走下去。因此,这是我拍摄的方法,看起来不错,无法弄清楚为什么只有一张。 我是新手,如果我的代码看起来很愚蠢,那就对不起。
private int MoveEnemyBullet()
{
int randomnum = r.Next(30);
shooter = enemies[randomnum];
bullet.Goto_Sprite(shooter);
bulletEnemy.Add(bullet);
bullet.SetVisible(true);
bullet.Active = true;
while (START)
{
if(bulletEnemy.Count!=0)
bullet.Y += bullet.speed;
Wait(0.01);
if (bullet.TouchingEdge())
{
bullet.SetVisible(false);
}
}
Game.StartScript(MoveEnemyBullet);
return 0;
}
答案 0 :(得分:0)
由于代码很少,因此很难阅读。什么是bullet,bulmEnemy或START?我想问一下为什么您也没有子弹列表,但是我想您一次只希望在屏幕上只有一颗子弹。
TouchingEdge()方法可能存在问题。类似的事情发生在我身上,子弹在射出屏幕边界时并没有被摧毁,只是击中了目标,所以子弹仍然“活着”但在屏幕外仍在移动。如果您遇到这种情况,子弹就永远不会设置为不可见。
而且,在我看来,您似乎没有更改START的值,这意味着您的while循环永远不会结束。如果在SetVisible(false)方法中将其更改为false,则这不是问题。
我相信Goto_Sprite(shooter)会将子弹的位置更改为新的射击者,但是您也应该检查该射击者是否正确。