Re: [語法] 請問DirectX 9的一些問題
看板C_and_CPP (C/C++)作者littleshan (我要加入劍道社!)時間16年前 (2009/11/30 15:58)推噓3(3推 0噓 6→)留言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
11/30 16:20, 1F
→
11/30 16:20, , 2F
11/30 16:20, 2F
→
11/30 16:20, , 3F
11/30 16:20, 3F
推
11/30 16:34, , 4F
11/30 16:34, 4F
→
11/30 16:35, , 5F
11/30 16:35, 5F
→
11/30 16:35, , 6F
11/30 16:35, 6F
推
11/30 21:21, , 7F
11/30 21:21, 7F
→
11/30 21:48, , 8F
11/30 21:48, 8F
→
11/30 21:49, , 9F
11/30 21:49, 9F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章