Re: [語法] 請問DirectX 9的一些問題

看板C_and_CPP (C/C++)作者 (累人啊....)時間16年前 (2009/11/30 15:30), 編輯推噓1(1010)
留言11則, 1人參與, 最新討論串5/8 (看更多)
※ 引述《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

11/30 15:44, , 1F
不同的HW畫的速度不同, 基本上這是不太能預期的, 也許你
11/30 15:44, 1F

11/30 15:46, , 2F
可以把問題反過來想, 如果我要讓這個cube分36個frame轉
11/30 15:46, 2F

11/30 15:46, , 3F
完一圈, 那麼每個frame它有多少時間可以畫; 那麼HW畫得
11/30 15:46, 3F

11/30 15:46, , 4F
夠快最好, 畫的不夠快下次時間到了它就會轉到更大的角度
11/30 15:46, 4F

11/30 15:47, , 5F
去; 用這樣的想法, 應該會比較容易實作的出來:)
11/30 15:47, 5F

11/30 15:50, , 6F
舉例, 希望cube以60 frame用一分鐘剛好轉完一圈, 那麼每
11/30 15:50, 6F

11/30 15:51, , 7F
秒cube應該轉6度, 所以畫完一個frame 6秒內它可以等或繼
11/30 15:51, 7F

11/30 15:51, , 8F
續畫下一度, 但如果它1 frame就花了3秒, 下次你就直接跳
11/30 15:51, 8F

11/30 15:52, , 9F
3x6=18度來畫, 這樣轉動會變得比較smooth, 但是原則上在
11/30 15:52, 9F

11/30 15:52, , 10F
最後一個frame到之前都勉強還能跟得上轉動XD
11/30 15:52, 10F

11/30 15:54, , 11F
續畫下'六'度; 變得比較'不'smooth; 修正一下漏誤字Orz
11/30 15:54, 11F
文章代碼(AID): #1B4tI6X5 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1B4tI6X5 (C_and_CPP)