[問題] 遊戲計時器

看板C_and_CPP (C/C++)作者 (Winston)時間14年前 (2012/01/02 06:08), 編輯推噓1(1013)
留言14則, 5人參與, 最新討論串1/3 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) windows 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) #include <conio.h> #include <iostream> #include <windows.h> #include <iomanip> #include<time.h> 問題(Question): 寫了一支好長好長的遊戲程式,但是現在想加上一個功能,就是倒數計時器 就是希望能在遊戲執行時顯示倒數的時間 時間到則遊戲停止 而倒數計時的程式寫得出來,但因為c++是一行一行執行的所以只能在時間停止 時才能進行遊戲(←啥鬼) 因此 希望大大們能教我如何邊進行遊戲邊倒數 問過google大神 但小弟資質駑鈍 有看沒有懂 大神告訴我說用thread(執行緒) 我的理解是原本一次只處理一行程式碼的c++ 可以一次處理很多行 但是還是寫不出來 因為沒看懂 不是自己的東西不會用 所以只好勞煩版上的大大了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.200.173

01/02 06:24, , 1F
「一次處理很多行」這個講法不對
01/02 06:24, 1F

01/02 06:25, , 2F
thread 這個東西你把它想成「分工合作」比較可以想得通
01/02 06:25, 2F

01/02 06:25, , 3F
但你這裡其實可以不必要用到 thread
01/02 06:25, 3F

01/02 06:26, , 4F
你需要的只是一支手錶 (我指的是 time() 這個函式)
01/02 06:26, 4F

01/02 06:26, , 5F
要顯示時間時就去看手錶現在剩多久 時間到了就跳掉
01/02 06:26, 5F

01/02 06:28, , 6F
這樣應該會比你硬把不太懂的 thread 吃下來還好做
01/02 06:28, 6F

01/02 06:38, , 7F
還是不太懂XD 因為我的遊戲裡會有getch的指令
01/02 06:38, 7F

01/02 06:39, , 8F
這樣不會因為抓鍵盤的指令而有所停頓嗎?
01/02 06:39, 8F

01/02 07:48, , 9F
用 getch() 代表你的架構很不好。
01/02 07:48, 9F

01/02 07:51, , 10F
單執行緒像一個人在工作,兩個執行緒就是兩個人在工作
01/02 07:51, 10F

01/02 07:52, , 11F
另外執行緒是很重要的觀念,建議先看一些觀念性的東西
01/02 07:52, 11F

01/02 11:19, , 12F
kbhit()可以用來檢查使用者有沒有輸入東西
01/02 11:19, 12F

01/02 11:20, , 13F
if(kbhit()){key = getch(); ..... }
01/02 11:20, 13F

01/02 11:20, , 14F
這樣可以保證getch()會馬上抓到東西而不會停住
01/02 11:20, 14F
文章代碼(AID): #1F0DbLGI (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1F0DbLGI (C_and_CPP)