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

看板C_and_CPP (C/C++)作者 (我要加入劍道社!)時間16年前 (2009/11/30 15:58), 編輯推噓3(306)
留言9則, 3人參與, 最新討論串6/8 (看更多)
※ 引述《tyc5116 (累人啊....)》之銘言: : 恩... : 這是DirectX的函式 : D3DXMatrixRotationX( &matWorld, timeGetTime() / 1000.0f ); : 每次呼叫到這裡的時候便旋轉角度(timeGetTime() / 1000.0f) : 我怎麼知道這個值要多少才會轉完一圈剛好1秒呢? : 目前我並不知道電腦執行的速度有多快,一秒內會執行到這個函數幾次啊? : 這是我主要的問題啦~~再麻煩了,謝謝^^ 雖然我們不知道 hardware 去 render 一張圖的時間是多少 不過我們可以假設 render 第一張 frame 和 render 第二張 frame 的時間是差不多的 (這假設也很合理) 所以我們可以這樣寫: float render_time; // 儲存 render 上一張 frame 所花的時間 void render() { DWORD time_begin = timeGetTime(); // 一秒轉動 2 PI 弧度 // 每張 frame 之前相隔 render_time 這麼多秒 // 所以是轉動 render_time * PI * 2.0 D3DXMatrixRotationX(&matWorld, render_time * PI * 2.0f); // 把東西畫出來 ... // 計算這張 frame 花了多久 render_time = (timeGetTime() - time_begin()) / 1000.0f; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.29.108

11/30 16:20, , 1F
暈, 還是l大的方法比較有彈性Orz 剛問了一下同事, D3Dy
11/30 16:20, 1F

11/30 16:20, , 2F
SDK的tutorial 04似乎剛好有一個類似的sample就是這樣
11/30 16:20, 2F

11/30 16:20, , 3F
做的, 有需要也可以看一下:)
11/30 16:20, 3F

11/30 16:34, , 4F
哈~那些範例我都看過啦..XD,只是有些地方要改不知道要怎改
11/30 16:34, 4F

11/30 16:35, , 5F
我的作業是繞X軸轉一圈花一秒,再換繞Y軸一圈花一秒
11/30 16:35, 5F

11/30 16:35, , 6F
然後就有一堆timer的問題要解決,目前還想不出來...@@
11/30 16:35, 6F

11/30 21:21, , 7F
試了一陣子,render_time常常都會是0耶,為什麼?
11/30 21:21, 7F

11/30 21:48, , 8F
render速度太快了 timer 跟不上
11/30 21:48, 8F

11/30 21:49, , 9F
加一個 Sleep 試試
11/30 21:49, 9F
文章代碼(AID): #1B4tiPKO (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1B4tiPKO (C_and_CPP)