我希望實現一個簡單的多人Hang子手遊戲,規則稍微彎曲。是否可以避免多人遊戲中的線程?
規則: 所有玩家必須同時猜測單詞中的字母。無論誰玩家猜出正確的字母表都會得到一個分數,並且放置結尾字母的玩家會得到獎勵分數。 這將是關於速度。更快的正確猜測讓你領先於其他人。
我打算有一個基於Qt/QML的GUI,編程語言是C++。平臺將是Linux。
我想我會需要:
- 一個用於處理用戶輸入的線程。
- 第二個線程用於並行顯示其他玩家正在輸入的內容。
- 在每個玩家的屏幕上平行顯示每個玩家得分的第三個線程。
我需要這3個線程還是我吠叫錯了樹?
你不需要這個線程。可以在一個線程中使用'boost :: asio'來完成。但是,幾乎所有的UI框架都喜歡有一個專用線程來保持對用戶輸入的響應(在存在長度的後臺任務時)。因此,對於這種情況,我會建議兩個線程,一個用於'Qt',另一個用於以異步方式實現的「遊戲邏輯」。 – Chad
@Chad感謝您的回覆。 '因此,對於這種情況,我會建議兩個線程,一個用於Qt,另一個用於以異步方式實現的「遊戲邏輯」。「請在」答案「中以一種更詳細的方式解釋上述引用。其次,如果我不使用boost庫,那麼是否有必要使用線程? –
不,你不需要這些輕量級任務的線程。對於典型的Qt應用程序,您也不需要Boost。 Qt是一個完整的(有些會說是臃腫的)框架,而Qt :: Application有一個事件循環,所以請使用它。 –