2013-05-08 57 views
0


我實際上是編寫一個pacman(C#控制檯)我想知道如何每秒移動我的幽靈,但我也想能夠隨時移動我的pacman我想要。以不同的方式使用線程的兩部分

我想我的鬼保持mooving每秒無論吃豆子做的,我應該能夠打動吃豆子當過,我想,和鬼只需要移動每一秒。

我想我必須使用線程系統,所以我想知道,如果你知道我是如何進行,以及如何線程工作,無法找到有關的任何信息:■。

+0

'控制檯Pacman':你有沒有考慮使用[新華社](HTTP://en.wikipedia .org/wiki/Microsoft_XNA)? – phadaphunk 2013-05-08 17:12:56

+0

我做了^^但我需要使用控制檯應用程序爲學校 – 2013-05-08 17:14:13

+0

我已編輯您的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 – 2013-05-08 17:15:05

回答

0

你可能會感到困惑,因爲Console.ReadKey()阻塞 ...所以你的遊戲循環將被卡住等待用戶按一個鍵嗎?如果隊列中已經有一個,你只需要用ReadKey()來獲取按鍵。這可以用Console.KeyAvailable進行檢查,如果鑰匙已經在那裏,則返回true。這樣,如果沒有按鍵被按下,遊戲循環就會持續循環......但是你仍然可以捕捉它並用它做一些事情。出來試試這個簡單的例子,看看會發生什麼:

class Program 
{ 
    static void Main(string[] args) 
    { 
     while (true) 
     { 
      System.Threading.Thread.Sleep(250); 
      Console.Write("."); 
      if (Console.KeyAvailable) 
      { 
       ConsoleKeyInfo key = Console.ReadKey(true); // read key without displaying it 
       Console.WriteLine(""); 
       Console.WriteLine("Key Pressed: " + key.KeyChar.ToString()); 
      } 
     } 
    } 
} 
+0

是的,這是我需要的。謝謝 – 2013-05-08 21:46:39

2

你並不需要使用不同的線程每個鬼。這些都可以使用Game Loop

任何遊戲的核心組成部分,在一個線程中完成的,從編程的角度來看,是 遊戲循環。遊戲循環允許遊戲順利運行 ,無論用戶的輸入或缺少。

大多數傳統的軟件程序響應用戶輸入,做什麼都不 沒有它。例如,文字處理器將文字格式和 文字作爲用戶類型。如果用戶沒有輸入任何內容,則 處理器不會執行任何操作。某些功能可能需要很長時間才能完成,但所有功能都是由用戶告知程序做某事的 。

遊戲,而另一方面,必須繼續不管 用戶的輸入操作。遊戲循環允許這樣做。一個高度簡化的遊戲 循環,在僞代碼,可能是這個樣子:

 while(user doesn't exit) 
    check for user input 
    run AI 
    move enemies 
    resolve collisions 
    draw graphics 
    play sounds 
    end while

遊戲循環可以被細化和修改遊戲開發 的進展,但大多數遊戲都是基於這個基本思路。

按照這個模式,你的遊戲會更容易編寫。

+0

問題是,如果我決定不捅我的牧馬人,鬼將凍結到:s – 2013-05-08 17:18:22

+0

這不是它的工作原理。移動pacman將處於「解決衝突」步驟。如果pacman不移動那個函數就沒有任何循環。 – 2013-05-08 18:36:43

相關問題