themindfield$
16-02-2008 11:58:08
Hi. When I try to compile the code from (http://www.ogre3d.org/phpBB2addons/view ... light=walk) I get errors.
Code:
OgreNewtonFrameListener.cpp
OgreNewtonFrameListener.h
So, what is wrong?
.\OgreNewtonFrameListener.cpp(16) : error C2065: 'mEventProcessor' : undeclared identifier
.\OgreNewtonFrameListener.cpp(16) : error C2227: left of '->addKeyListener' must point to class/struct/union/generic type
type is ''unknown-type''
.\OgreNewtonFrameListener.cpp(80) : error C2065: 'mInputDevice' : undeclared identifier
.\OgreNewtonFrameListener.cpp(80) : error C2227: left of '->capture' must point to class/struct/union/generic typeCode:
OgreNewtonFrameListener.cpp
#include ".\ogrenewtonframelistener.h"
OgreNewtonFrameListener::OgreNewtonFrameListener(RenderWindow* win, Camera* cam, SceneManager* mgr, OgreNewt::World* W, SceneNode* ncam, OgreNewt::Body* entity_body, SceneNode* nent, Entity* mEntity_buffer, AnimationState *mAnimationState_buffer) :
ExampleFrameListener(win,cam, true, true)
{
m_World = W;
msnCam = ncam;
mSceneMgr = mgr;
ent_body = entity_body;
msnEnt = nent;
mEntity = mEntity_buffer;
mAnimationState = mAnimationState_buffer;
mEventProcessor->addKeyListener( this );
}
OgreNewtonFrameListener::~OgreNewtonFrameListener(void)
{
}
void OgreNewtonFrameListener::keyReleased(KeyEvent *e)
{
Vector3 trans, strafe, vec;
Quaternion quat;
quat = msnEnt->getOrientation();
vec = Vector3(0.0,0.0,-0.5);
trans = quat * vec;
vec = Vector3(0.5,0.0,0.0);
strafe = quat * vec;
ent_body->setVelocity( (trans * 0) );
ent_body->setVelocity( (strafe * 0) );
if( mAnimationState->getAnimationName() == "Walk" )
{
mAnimationState->setTimePosition( 0.0f );
mAnimationState->setEnabled( false );
}
mAnimationState = mEntity->getAnimationState( "Idle1" );
mAnimationState->setLoop( true );
mAnimationState->setEnabled( true );
}
void OgreNewtonFrameListener::keyPressed(KeyEvent *e)
{
}
void OgreNewtonFrameListener::keyClicked(KeyEvent *e)
{
}
bool OgreNewtonFrameListener::frameStarted(const FrameEvent &evt)
{
mAnimationState->addTime( evt.timeSinceLastFrame );
Vector3 trans, strafe, vec;
Quaternion quat;
quat = msnEnt->getOrientation();
vec = Vector3(0.0,0.0,-0.5);
trans = quat * vec;
vec = Vector3(0.5,0.0,0.0);
strafe = quat * vec;
mInputDevice->capture();
msnCam->pitch( Degree(mInputDevice->getMouseRelativeY() * -0.5) );
msnCam->yaw( Degree(mInputDevice->getMouseRelativeX() * -0.5), SceneNode::TS_WORLD );
ent_body->unFreeze();
Ogre::Vector3 cur_vel = ent_body->getVelocity();
//Ogre::Vector3 cur_pos = ent_body->getPositionOrientation();
if (mInputDevice->isKeyDown(Ogre::KC_UP) || mInputDevice->isKeyDown(Ogre::KC_W))
{
// in your movement code
Ogre::Vector3 vel = trans * 1 * 10.0;
vel.y = cur_vel.y;
ent_body->setVelocity( vel );
// Set walking animation
if( mAnimationState->getAnimationName() == "Idle1" )
{
mAnimationState->setTimePosition( 0.0f );
mAnimationState->setEnabled( false );
}
mAnimationState = mEntity->getAnimationState( "Walk" );
mAnimationState->setLoop( true );
mAnimationState->setEnabled( true );
}
if (mInputDevice->isKeyDown(Ogre::KC_DOWN) || mInputDevice->isKeyDown(Ogre::KC_S))
{
//ent_body->setVelocity( (trans * -1 * 10.0) );
//ent_body->setPositionOrientation();
//ent_body->getOgreNode()->yaw( Ogre::Degree 90 );
// in your movement code
Ogre::Vector3 vel = trans * -1 * 10.0;
vel.y = cur_vel.y;
ent_body->setVelocity( vel );
// Set walking animation
if( mAnimationState->getAnimationName() == "Idle1" )
{
mAnimationState->setTimePosition( 0.0f );
mAnimationState->setEnabled( false );
}
mAnimationState = mEntity->getAnimationState( "Walk" );
mAnimationState->setLoop( true );
mAnimationState->setEnabled( true );
}
if (mInputDevice->isKeyDown(Ogre::KC_LEFT) || mInputDevice->isKeyDown(Ogre::KC_A))
{
ent_body->setVelocity( (strafe * -1 * 10.0) );
}
if (mInputDevice->isKeyDown(Ogre::KC_RIGHT) || mInputDevice->isKeyDown(Ogre::KC_D))
{
ent_body->setVelocity( (strafe * 10.0) );
}
if (mInputDevice->isKeyDown(Ogre::KC_PGDOWN))
{
Ogre::Vector3 dir(0,-1,0);
ent_body->setVelocity( (dir * 10.0) );
}
if (mInputDevice->isKeyDown(Ogre::KC_PGUP))
{
Ogre::Vector3 dir(0,1,0);
ent_body->setVelocity( (dir * 10.0) );
}
if (mInputDevice->isKeyDown(Ogre::KC_SPACE))
{
if (timer <= 0.0)
{
Ogre::Vector3 dir, vec;
Ogre::Quaternion camorient = msnCam->getWorldOrientation();
vec = Ogre::Vector3(0,0,-1);
dir = camorient * vec;
Entity* ent;
SceneNode* node;
Ogre::String name;
Ogre::Vector3 pos = msnCam->getWorldPosition();
name = "Body "+Ogre::StringConverter::toString( count++ );
ent = mSceneMgr->createEntity( name, "ellipsoid.mesh" );
node = mSceneMgr->getRootSceneNode()->createChildSceneNode( name );
node->attachObject( ent );
ent->setMaterialName( "Simple/dirt01" );
ent->setNormaliseNormals(true);
OgreNewt::Collision* col = new OgreNewt::CollisionPrimitives::Ellipsoid( m_World, Ogre::Vector3(1,1,1) );
OgreNewt::Body* body = new OgreNewt::Body( m_World, col );
Ogre::Vector3 inertia = OgreNewt::MomentOfInertia::CalcSphereSolid( 10 , 1.0 );
body->setMassMatrix( 10 , inertia );
body->attachToNode( node );
body->setStandardForceCallback();
body->setPositionOrientation( pos, camorient );
body->setVelocity( (dir * 50.0) );
timer = 0.2;
}
}
timer -= evt.timeSinceLastFrame;
mAnimationState->getEnabled();
if (mInputDevice->isKeyDown(Ogre::KC_ESCAPE))
return false;
return true;
}OgreNewtonFrameListener.h
#pragma once
#include "ExampleFrameListener.h"
#include <OgreNewt.h>
class OgreNewtonFrameListener :
public ExampleFrameListener
{
protected:
OgreNewt::World* m_World;
SceneNode* msnCam;
Ogre::SceneNode* msnEnt;
SceneManager* mSceneMgr;
int count;
float timer;
OgreNewt::Body* ent_body; /*MY IMPLEMENTATION*/
OgreNewt::Collision* ent_col; /*MY IMPLEMENTATION*/
AnimationState* mAnimationState; /*MY IMPLEMENTATION*/
//AnimationState* mAnimationState_buffer; /*MY IMPLEMENTATION*/
Entity* mEntity; /*MY IMPLEMENTATION*/
//Entity* mEntity_buffer; /*MY IMPLEMENTATION*/
public:
OgreNewtonFrameListener(RenderWindow* win, Camera* cam, SceneManager* mgr, OgreNewt::World* W, SceneNode* ncam, OgreNewt::Body* entity_body, SceneNode* nent, Entity* mEntity_buffer, AnimationState* mAnimationState_buffer);
~OgreNewtonFrameListener(void);
bool frameStarted(const FrameEvent &evt);
void keyReleased( KeyEvent *e );
void keyPressed(KeyEvent *e);
void keyClicked(KeyEvent *e);
};
So, what is wrong?