|
我现在想控制一个方形的移动,比如说:按照x轴正向每步移动0.05f的距离,应该如何实现呢?
我原本打算用 “ 定时器” +“D3DXMatrixTranslation( &matWorld,0.05,0,0 );”来实现,但是发现弄出来的没有发生移动,
所以我想问一下各位大侠有什么好的方法来实现一个方形的移动吗?或者说我的方法错误在哪里?希望给予指出,谢谢!!
void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT nTimerid,DWORD dwTime)
{
_x=_x+0.5;
}
·
·
·
OID SetupWorldMatrice()
{
//建立一个绕X轴动态旋转的世界矩阵
D3DXMATRIX matWorld;
SetTimer(g_Wnd,1,50,TimerProc); //一个1秒触发一次的定时器
D3DXMatrixIdentity( &matWorld ); //将一个矩阵单位化
D3DXMatrixTranslation( &matWorld,_x,0.,0 );
//设置世界矩阵
g_pd3dDevice->SetTransform( D3DTS_WORLD, &matWorld );
}
·
·
·
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
//设置世界矩阵
SetupWorldMatrice(); //动画一般在世界坐标系里改变
//在后台缓冲区绘制图形
g_pd3dDevice->SetStreamSource( 0, g_pVB, 0, sizeof(CUSTOMVERTEX) );
g_pd3dDevice->SetFVF( D3DFVF_CUSTOMVERTEX );
g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0,2 );
//结束在后台缓冲区渲染图形
g_pd3dDevice->EndScene();
}
|
|