**已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
昨天关门了。
Improve this question
我做了一个简单的游戏在C#使用Windows窗体应用程序的大学作业。问题是,游戏崩溃后,第一组随机生成的障碍。我似乎不能确定什么问题在这里。这里是主要的游戏循环,所有的障碍都是随机生成的,并使精灵移动。
private void MainGameEventTImer(object sender, EventArgs e)
{
// CONTROLS MAJORITY OF THE PLAYERS MOVEMENT
if(jump == true && mvForward == true)
{
player.Left += 10;
player.Top -= force;
force -= 1;
}
else if(jump == true && mvForward == false)
{
player.Top -= force;
force -= 1;
}
if(player.Top > 514)
{
Gravity = 20;
player.Top = 515;
jump = false;
}
//RANDOM SPAWNING OBSTACLES
foreach (Control x in this.Controls)
{
if (x is PictureBox && (string)x.Tag == "obstacle")
{
x.Left -= speed;
if (x.Left < -100)
{
while (hut.Bounds.IntersectsWith(rock.Bounds) == false);
{
x.Left = ClientSize.Width + rand.Next(200, 500) + (x.Width * 5);
}
}
if (player.Bounds.IntersectsWith(x.Bounds))
{
gameOver = true;
gameTimer.Stop();
pbGameOver.Visible = true;
btnQuit.Visible = true;
btnRestart.Visible = true;
}
if(player.Bounds.IntersectsWith(pbLeftWall.Bounds))
{
player.Left = 112;
}
}
}
}
我试着改变一些变量,并试图停止所有的后台进程,因为我认为他们可能会干扰游戏(这是没有意义的,因为我有一个i5 11th与8GB的内存)。除此之外,我一直无法确定问题,所以我不知道如何解决它
1条答案
按热度按时间83qze16e1#
当你说它崩溃的时候-崩溃的性质是什么?它会挂一段时间直到被武力杀死吗?
我猜这就是您的问题的原因:
使用while循环时要小心,除非你绝对确定无论在while循环中发生了什么,都会导致while循环在合理的时间内退出。
由于你似乎没有改变任何关于小屋或岩石在循环中,我会考虑修改你的逻辑那里。