※ 引述《karta031736 (豬怕龍)》之銘言:
: 我有一些程式碼 如下
: if(CharData[0].state == CCharData::dead){
: if (GGTexture.GetTexture()){
: GGTexture.DrawScreen(pD3DDevice, 0, 0, 640, 480);//顯示GameOver的圖
: }
: Sleep(2000); //睡眠 2 秒
: PostQuitMessage(0); //關閉視窗
: }
: 上面程式是說 我有一個遊戲角色CharData[0] 當他的狀態變成死亡時 我要讓他會
: 呼叫並顯示GameOver的圖 然後延遲兩秒關閉視窗
: 可是 程式他都反過來先延遲兩秒在顯示GameOver的圖然後瞬間關閉說.....
: 我還不是很懂sleep() 麻煩會的人教教我該怎麼改 又或者不用sleep()改用其他什麼函式??
: 請大家給我意見~
: 結論是 我希望當角色死亡時 視窗顯示GameOver的圖 經過2秒後再關閉視窗
算是 FAQ 級了...
你block 了 UI thread 了.
不要在 event handler 裡面 sleep
你可以利用 timer 之類, 讓它兩秒後做別的東西.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.155.236.82