Q
凍結遊戲
1
A
回答
2
單行破解會在主Update()中調用Thread.Sleep(x),但是會在指定的時間內將掛起遊戲。用戶會認爲你的應用程序無響應,他可能會殺死它並重新啓動它!這可能不是你想要的。
我構建遊戲的方式是,每個主要組件都有自己的Update()(或Tick()()方法,該方法在每個邏輯更新上調用。您可以選擇性地凍結組件,只需在一段時間內不調用它們的Update()即可。有些東西你一定不想凍結,比如刷新屏幕,迴應用戶輸入或聲音處理。
一些示例代碼:
// To pause the game for x number of frames, set pauseDelay = to x
int pauseDelay;
public void Update() {
if (pauseDelay > 0) {
--pauseDelay;
}
else {
physics.Update();
ai.Update();
}
input.Update();
sound.Update();
}
2
如果您基於GameComponents開發遊戲,通常可以將Enabled標誌設置爲false,以防止執行更新邏輯,這顯然取決於其他因素(類更新邏輯之外的對象操作,更新邏輯在抽籤或其他方法進行ECT ..)
public class Car : GameComponent
{
// This logic is only called if the Enabled property is set to true.
public override void Update(GameTime gameTime)
{
base.Update(gameTime);
}
}
如果你不使用遊戲組件那麼這將是很簡單的引入有效標記設爲您的clases和執行更新邏輯之前檢查這一點。
+0
我會試試.. – Pilispring
1
如果您尋找一個非常簡單的方法(安迪似乎好一些,但這是快速的方法)
在您的更新方法的類,添加在頂部:
if (isPaused)
break;
您可以使用isActive檢查窗口是否處於活動狀態。
相關問題
- 1. removeAll()凍結遊戲
- 2. Unity遊戲凍結
- 3. XNA遊戲凍結
- 4. Gamemaker遊戲凍結電腦
- 5. Java遊戲在戰鬥中凍結
- 6. 線程循環凍結遊戲窗口
- 7. OPENGLES遊戲每3秒鐘凍結
- 8. Pygame遊戲中的字符被凍結
- 9. 井字遊戲Java遊戲不結束
- 10. Java - 在CardLayout中切換面板時遊戲線程會凍結
- 11. JavaScript遊戲不工作,初始化後凍結
- 12. 當屏幕被鎖定並解鎖時,遊戲會凍結
- 13. 我們遊戲中的時間錯誤,currentTimeMillis凍結?
- 14. 安卓遊戲始終只在三星銀河s2上凍結
- 15. 低圖形HTML5遊戲,使瀏覽器凍結
- 16. java中的聲音 - 播放聲音時遊戲會凍結
- 17. 多次切換場景後SpriteKit遊戲被凍結
- 18. 當我嘗試運行遊戲時,Pygame窗口會凍結
- 19. Android 2D遊戲應用程序凍結1秒一致
- 20. 遊戲:一般結構和遊戲項目結構
- 21. 結束我的RPS遊戲?
- 22. CCActionDelay結束遊戲序列
- 23. AS3 hitTestObject結束遊戲
- 24. AS3遊戲元素結構
- 25. 團結5 - 2D遊戲 -
- 26. Java遊戲數據結構
- 27. Android遊戲開發結構
- 28. 遊戲結構設計
- 29. cocos2d iphone遊戲結構
- 30. 遊戲編程結構
我不認爲有一個內置的方式做到這一點,是因爲它能夠依賴於子系統。也許你想讓邏輯和物理學凍結,但音樂應該繼續播放。你將不得不在你自己的特定組件的更新邏輯中實現它。 – dowhilefor
簡單的Google不會在Matlab中顯示「等待」功能的文檔。你能否提供一個鏈接,以便我們確切地知道你在做什麼?或者,更好的是,自己來形容它?你的問題有點含糊不清(有很多不同的方法可以「凍結」遊戲)。 –
作爲dowhilefor說,我會在更新中實施阻止一些動畫或輸入(例如命中後)。 – Pilispring