Q
XNA游戏冻结
0
A
回答
0
您的更新方法中有括号的小错字。
protected override void Update(GameTime gameTime)
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
Exit();
//updating mobs and checking for collisions
foreach (Mobs M in mobsList)
{
// Updating the mobs, collision checking, etc here
...
...
Player.update(gameTime);
bG.update(gameTime);
loadAsteroids();
loadMobs();
foreach (Roids R in asteroidList)
{
// Updating the asteroids, collision checking, etc
...
...
M.update(gameTime);
R.update(gameTime);
}
base.Update(gameTime);
}
}
这里有两个主要的错误。首先,这一位代码:
Player.update(gameTime);
bG.update(gameTime);
loadAsteroids();
loadMobs();
foreach (Roids R in asteroidList)
{
// Updating the asteroids, collision checking, etc
...
M.update(gameTime);
R.update(gameTime);
}
base.Update(gameTime);
将在第一个foreach循环内运行。每当您致电更新时,您都会为每个暴徒更新玩家,背景,每个小行星和一次窗口。这只是意味着每次更新都会发生一次,而不是每个正在更新的怪物发生一次。 这就是为什么你的游戏滞后或冻结。这只是暴民的foreach循环中的支架错位 - 将所有这些东西都转移到foreach循环之外。
另一件事错的是这个部分:
foreach (Roids R in asteroidList)
{
// Updating the asteroids, collision checking, etc
...
M.update(gameTime); /* THIS LINE HERE */
R.update(gameTime);
}
在这里,你每一次小行星更新每个黑帮成员。如果你在屏幕上有15个小行星,每个暴徒成员将被更新15次。将它排到第一个foreach循环中。
相关问题
- 1. 冻结游戏
- 2. removeAll()冻结游戏
- 3. Unity游戏冻结
- 4. Gamemaker游戏冻结电脑
- 5. XNA游戏组件
- 6. XNA游戏性能
- 7. 鼠标XNA游戏
- 8. XNA游戏教程
- 9. C#XNA无游戏网络游戏
- 10. 非XNA游戏进入游戏?
- 11. xna的最佳结构街机游戏
- 12. 使用带有XNA(Windows)游戏项目的XNA(Windows)游戏库
- 13. Java游戏在战斗中冻结
- 14. 线程循环冻结游戏窗口
- 15. OPENGLES游戏每3秒钟冻结
- 16. Pygame游戏中的字符被冻结
- 17. 本地多人游戏XNA
- 18. XNA游戏嵌入网站
- 19. 在XNA游戏中progressBar
- 20. 确定XNA游戏滞后
- 21. XNA游戏状态管理
- 22. XNA游戏分发问题
- 23. 游戏配置和XNA
- 24. FlatRedBall XNA游戏引擎
- 25. XNA for WP7游戏:DrawUserIndexedPrimitives
- 26. C#XNA桨球游戏
- 27. XNA Windows游戏(4.0)ContentLoadException
- 28. XNA游戏开发kickstart
- 29. XNA连续平台游戏
- 30. XNA - 冻结菜单错误
请向我们展示在发生这种情况时正在处理的部分代码。 –
我不知道什么时候开始这样做,我以为我已经完成了它,我跑了它。视觉工作室可以看到的代码中没有错误。 – Baccy
是的,但我们看不到任何代码,所以我们完全不知道问题出在哪里。 –