游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1377|回复: 3

[求助]立方体旋转问题(急急急!!!)

[复制链接]

5

主题

19

帖子

25

积分

注册会员

Rank: 2

积分
25
发表于 2006-4-10 11:06:00 | 显示全部楼层 |阅读模式
部分代码如下:
HRESULT CMyD3DApplication::FrameMove(){
      CCube*pCube;
        // Handle object rotations
    if( m_bKey[VK_LEFT] || m_bKey[VK_RIGHT] || m_bKey[VK_DOWN] || m_bKey    [VK_UP])
    {
            if( m_bKey[VK_LEFT] )
                pCube->m_fRotY += m_fElapsedTime;
            else if( m_bKey[VK_RIGHT] )
                pCube->m_fRotY -= m_fElapsedTime;
            if( m_bKey[VK_DOWN] )
                pCube->m_fRotX += m_fElapsedTime;
            else if( m_bKey[VK_UP] )
                pCube->m_fRotX -= m_fElapsedTime;
            pCube->UpdateMatrix();
      
        }
。。。。。
编译错误提示说没有初始化pCube,我是用类CCube封状的立方体。
请问怎样初始化pCube??
谢谢指教。

25

主题

134

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2006-4-10 12:05:00 | 显示全部楼层

Re:[求助]立方体旋转问题(急急急!!!)

CCube*pCube = new CCube();//构造函数

25

主题

134

帖子

134

积分

注册会员

Rank: 2

积分
134
发表于 2006-4-10 12:06:00 | 显示全部楼层

Re:[求助]立方体旋转问题(急急急!!!)

构造函数里可能需要参数,根据你的类的情况填写

5

主题

19

帖子

25

积分

注册会员

Rank: 2

积分
25
 楼主| 发表于 2006-4-10 12:41:00 | 显示全部楼层

Re:[求助]立方体旋转问题(急急急!!!)

     谢谢,这个初始化解决的,但是按下方向键去不会旋转,郁闷了。主要问题是类CCube中的函数UpdateMatrix()写不好。
class CCube
{
public:
    D3DXVECTOR3  m_pos;       // origin of object
    FLOAT        m_fRotX;     // rotation of object around X axis
    FLOAT        m_fRotY;     // rotation of object around Y axis
    D3DXMATRIXA16 m_mat;
public:
    VOID Init(VOID)
    {
        // Pick a random position and orientation
        m_pos = D3DXVECTOR3( (FLOAT)(rand() % 50 - 25), // X is in (-25.0, 25.0)
                             (FLOAT)(rand() % 50 - 25), // Y is in (-25.0, 25.0)
                           (FLOAT)(rand() % 25) );    // Z is in (  0.0, 25.0)

        m_fRotX = D3DXToRadian(rand() % 360);
        m_fRotY = D3DXToRadian(rand() % 360);
        UpdateMatrix();
        //m_cullstate = CS_UNKNOWN;
    }
    VOID UpdateMatrix(VOID)
    {
        // Recompute m_mat, m_vecBoundsWorld, and m_planeBoundsWorld
        // when the thing's position, orientation, or bounding box has changed
        D3DXMATRIXA16 matRotX, matRotY, matTrans;
        D3DXMatrixRotationX( &matRotX, m_fRotX );
        D3DXMatrixRotationY( &matRotY, m_fRotY );
        D3DXMatrixTranslation( &matTrans, m_pos.x, m_pos.y, m_pos.z );
        m_mat = matRotX * matRotY * matTrans;

    }
};
     这个UpdateMatrix()该怎么写?
    请指教,不胜感激。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-24 04:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表