我目前正在開發一個迷你游戲專案,但我對這個特定的機制有疑問:
void monsterMove(){
//monster moves randomly
}
void playerMove(){
//accepting input as player movement using W, A, S, D
}
然而,該專案要求怪物始終保持移動,即使玩家沒有移動。
經過一番研究,我發現實作這種機制需要多執行緒,因為兩者都monsterMove()需要playerMove()同時運行,即使playerMove()沒有收到用戶的任何輸入。
具體來說,我想解決兩個問題:
- 哪個函式需要作為執行緒?
- 如何構建執行緒?
可悲的是,我沒有找到專門針對此類問題的資源,因為 Internet 上的所有內容似乎都在指出多執行緒如何以某種方式作為并行性作業,但在這種實作中卻沒有。
我在想monsterMove()它將遞回運行,而playerMove()將作為執行緒運行,因為即使執行緒尚未完成(還沒有輸入) ,monsterMove()也需要每秒運行一次。雖然我可能在很大程度上是錯的。nplayerMove()
提前謝謝你!
(PS為了避免誤解,我特意問的是執行緒和多執行緒是如何作業的,不是機甲的邏輯。)
編輯:程式現在正在運行!但是,非常感謝任何與該程式如何使用多執行緒完成相關的答案/代碼。:)
uj5u.com熱心網友回復:
為此,您不需要多執行緒:
這個偽代碼描述了基本結構:
while (1)
{
check if input is available using kbhit
if (input available)
read user input using getch
move player depending on user input
move monsters
}
您可以使用該CreatdThread函式使用多執行緒,但您的代碼將變得過于復雜。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/489307.html
