如何让我的敌人清单来射击C#

时间:2020-07-01 20:03:09

标签: c#

我一直在从事一些大学项目的游戏项目。我的问题是我有左右移动的敌人列表,当触摸左边缘或右边缘时有点下降,我想要他们做的是在游戏持续进行时向随机敌人射击子弹,但我设法要显示并从随机敌人处射出的子弹,就是这样:'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;
    }

1 个答案:

答案 0 :(得分:0)

由于代码很少,因此很难阅读。什么是bullet,bulmEnemy或START?我想问一下为什么您也没有子弹列表,但是我想您一次只希望在屏幕上只有一颗子弹。

TouchingEdge()方法可能存在问题。类似的事情发生在我身上,子弹在射出屏幕边界时并没有被摧毁,只是击中了目标,所以子弹仍然“活着”但在屏幕外仍在移动。如果您遇到这种情况,子弹就永远不会设置为不可见。

而且,在我看来,您似乎没有更改START的值,这意味着您的while循环永远不会结束。如果在SetVisible(false)方法中将其更改为false,则这不是问题。

我相信Goto_Sprite(shooter)会将子弹的位置更改为新的射击者,但是您也应该检查该射击者是否正确。