0
我正在創建一個遊戲,敵人在上下左右四個方向上移動。目前當敵人與我的比賽中的岩石相撞時,他們就會卡在那裏。敵人根據他們的「移動」int變量移動; 1向右移動,2向左移動,3向下移動,4向上移動。因此,根據他們在碰撞時的移動變量,他們應該朝相反的方向移動,直到他們不再碰撞。碰撞不能正常工作
敵人移動代碼
public void enemyMove()
{
movetime--;
if (move == 1)
{
position.X += speed;
if (position.X > 1320)
{
move = rand.Next(1, 5);
position.X -= 5;
enemyMove();
}
}
if (move == 2)
{
position.X -= speed;
if (position.X < 160)
{
move = rand.Next(1, 5);
position.X += 5;
enemyMove();
}
}
if (move == 3)
{
position.Y += 5;
if (position.Y > 780)
{
move = rand.Next(1, 5);
position.Y -= 5;
enemyMove();
}
}
if (move == 4)
{
position.Y -= 5;
if (position.Y < 120)
{
move = rand.Next(1, 5);
position.Y += 5;
enemyMove();
}
}
}
岩石碰撞代碼(e是敵類,它是其中enemyMove代碼)
if (e.boundingBox.Intersects(r.boundingBox))
{
switch (e.move)
{
case 1:
{
e.position.X -= e.speed;
//e.move = 2;
break;
}
case 2:
{
e.position.X += e.speed;
//e.move = 1;
break;
}
case 3:
{
e.position.Y -= e.speed;
//e.move = 4;
break;
}
case 4:
{
e.position.Y += e.speed;
//e.move = 3;
break;
}
}
}
我評論的是,當它的碰撞它的線改變它的移動變量,因爲它到目前爲止應該沒問題,但敵人一直在卡住。當我沒有注意到這些線條時,敵人會在6秒內「嘶嘶」出來之後得到釋放(不會想到用更好的方式來描述它)。
如果有任何需要,以幫助看到更多的代碼,請向我一定要得到它,你
我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –