|

- 口碑
- 0 公里
- 米
- 12 粒
- 投资金
- 0 元
- 股份
- 0 股
- 性别
- 男
|
1#
发表于 2010-8-1 12:59
| 只看该作者
求助:控制人物行走问题
- bool MyFrameListener::frameStarted(const Ogre::FrameEvent &evt)
- {
- m_Mouse->capture();
- m_Keyboard->capture();
- Quaternion p=sceneMgr->getSceneNode("RootNode")->getOrientation();
- if(m_Keyboard->isKeyDown(OIS::KeyCode::KC_W)){
- p.z=(float)cos(p.y);
- p.x=(float)sin(p.y);
- sceneMgr->getSceneNode("RootNode")->translate(Vector3(p.x,0.0f,p.z));
- walk->setEnabled(true);
- }else if(m_Keyboard->isKeyDown(OIS::KeyCode::KC_S)){
- p.z=-(float)cos(p.y);
- p.x=-(float)sin(p.y);
- sceneMgr->getSceneNode("RootNode")->translate(Vector3(p.x,0.0f,p.z));
- walk->setEnabled(true);
- }else if(m_Keyboard->isKeyDown(OIS::KeyCode::KC_A)){
- p.z=(float)cos(p.y-1.57f);
- p.x=(float)sin(p.y-1.57f);
- sceneMgr->getSceneNode("RootNode")->translate(Vector3(p.x,0.0f,p.z));
- walk->setEnabled(true);
- }else if(m_Keyboard->isKeyDown(OIS::KeyCode::KC_D)){
- p.z=(float)cos(p.y+1.57f);
- p.x=(float)sin(p.y+1.57f);
- sceneMgr->getSceneNode("RootNode")->translate(Vector3(p.x,0.0f,p.z));
- walk->setEnabled(true);
- }else{
- walk->setEnabled(false);
- walk->setTimePosition(0.0f);
- }
- if(m_Keyboard->isKeyDown(OIS::KeyCode::KC_ESCAPE)){
- return false;
- }
- return true;
- }
复制代码 当按W键的时候,人物就向当前面对的方向前进。。
上面的代码不正确,请大家指教。
贴代码也可以。 |
|