作者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
1F:→ tomnelson:How about 'fmod' ? 12/01 10:18
2F:→ tyc5116:恩....run到後面发现都是sleep的问题,後来就解决了... 12/01 17:16