作者tyc5116 (累人啊....)
看板C_and_CPP
標題Re: [語法] 請問DirectX 9的一些問題
時間Mon Nov 30 15:30:11 2009
※ 引述《tyc5116 (累人啊....)》之銘言:
: 旋轉的函數內有參數要設定每次旋轉的角度(徑度)
:
: 然後我的問題在於視窗訊息多久會執行一次旋轉的函數
:
: 應該是取決於電腦的速度,這樣要怎麼控制轉一圈的時間呢?
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 220.143.153.249
: 推 VictorTom:它要自己轉??那想到的就是timer, 不過DX裡我就不知道怎 11/30 00:56
: → VictorTom:麼搞了, 就算我用OGL也只會按鍵然後等Win msg處理, 更暴 11/30 00:57
: → VictorTom:力的直接clock算秒差然後移/轉動object再re-draw....XD 11/30 00:57
: → tyc5116:我想到的也是timer,可是每次旋轉角度怎麼得到? 11/30 01:02
: 推 VictorTom:每次旋轉角度不是你想給它怎麼轉就叫它轉的嗎XD 11/30 01:34
恩...
這是DirectX的函式
D3DXMatrixRotationX( &matWorld, timeGetTime() / 1000.0f );
每次呼叫到這裡的時候便旋轉角度(timeGetTime() / 1000.0f)
我怎麼知道這個值要多少才會轉完一圈剛好1秒呢?
目前我並不知道電腦執行的速度有多快,一秒內會執行到這個函數幾次啊?
這是我主要的問題啦~~再麻煩了,謝謝^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.18.48.28
推 VictorTom:不同的HW畫的速度不同, 基本上這是不太能預期的, 也許你 11/30 15:44
→ VictorTom:可以把問題反過來想, 如果我要讓這個cube分36個frame轉 11/30 15:46
→ VictorTom:完一圈, 那麼每個frame它有多少時間可以畫; 那麼HW畫得 11/30 15:46
→ VictorTom:夠快最好, 畫的不夠快下次時間到了它就會轉到更大的角度 11/30 15:46
→ VictorTom:去; 用這樣的想法, 應該會比較容易實作的出來:) 11/30 15:47
→ VictorTom:舉例, 希望cube以60 frame用一分鐘剛好轉完一圈, 那麼每 11/30 15:50
→ VictorTom:秒cube應該轉6度, 所以畫完一個frame 6秒內它可以等或繼 11/30 15:51
→ VictorTom:續畫下一度, 但如果它1 frame就花了3秒, 下次你就直接跳 11/30 15:51
→ VictorTom:3x6=18度來畫, 這樣轉動會變得比較smooth, 但是原則上在 11/30 15:52
→ VictorTom:最後一個frame到之前都勉強還能跟得上轉動XD 11/30 15:52
→ VictorTom:續畫下'六'度; 變得比較'不'smooth; 修正一下漏誤字Orz 11/30 15:54