作者tyc5116 (累人啊....)
看板C_and_CPP
標題Re: [語法] 請問DirectX 9的一些問題
時間Mon Nov 30 23:28:59 2009
※ 引述《littleshan (我要加入劍道社!)》之銘言:
: void render()
: {
: DWORD time_begin = timeGetTime();
: // 一秒轉動 2 PI 弧度
: // 每張 frame 之前相隔 render_time 這麼多秒
: // 所以是轉動 render_time * PI * 2.0
: D3DXMatrixRotationX(&matWorld, render_time * PI * 2.0f);
: render_time = (timeGetTime() - time_begin()) / 1000.0f;
: }
: → VictorTom:做的, 有需要也可以看一下:) 11/30 16:20
: 推 tyc5116:哈~那些範例我都看過啦..XD,只是有些地方要改不知道要怎改 11/30 16:34
: → tyc5116:我的作業是繞X軸轉一圈花一秒,再換繞Y軸一圈花一秒 11/30 16:35
: → tyc5116:然後就有一堆timer的問題要解決,目前還想不出來...@@ 11/30 16:35
: 推 tyc5116:試了一陣子,render_time常常都會是0耶,為什麼? 11/30 21:21
: → littleshan:render速度太快了 timer 跟不上 11/30 21:48
: → littleshan:加一個 Sleep 試試 11/30 21:49
還是有一些問題耶~~
如l大所說,加個Sleep便可以了,但是RotationX部份旋轉角要用累加的方式
就是前幾張圖角度分別是0,90,180,270,0,...
則輸入的參數則要輸入0,90,180,270,而不是只輸入90
這部份我用了這樣子寫
double tmpX=timeGetTime() / 1000.0f;
static double cntX=0;
if (tmpX
%D3DX_PI==0)
++cntX;
else
D3DXMatrixRotationX( &matWorld, timeGetTime() / 1000.0f );
if (cntX>=5)
cntX=0;
表示旋轉五圈停止,不過有錯誤
error C2296: '%' : 不合法,左運算元具有型別 'double'
似乎只能接受整數(我猜的),恩....不知道怎麼改
以及推文上有說到的
繞X軸轉一圈花一秒,再換繞Y軸一圈花一秒,應該就加一些判斷就可以了吧?
還是還有一些意外咧??^^
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.18.48.28
→ tomnelson:How about 'fmod' ? 12/01 10:18
→ tyc5116:恩....run到後面發現都是sleep的問題,後來就解決了... 12/01 17:16