-
Notifications
You must be signed in to change notification settings - Fork 1
/
Character.h
51 lines (43 loc) · 1.55 KB
/
Character.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#pragma once
#include "OIS.h"
#include "Ogre.h"
#include "Cube.h"
class Character {
protected:
Ogre::SceneNode *mMainNode; // Main character node
Ogre::SceneNode *mSightNode; // "Sight" node - The character is supposed to be looking here
Ogre::SceneNode *mCameraNode; // Node for the chase camera
Ogre::SceneNode *mHeroNode;
Ogre::Entity *mEntity; // Character entity
Ogre::SceneManager *mSceneMgr;
Ogre::String mName;
Ogre::Camera *mCamera;
Ogre::AnimationState *mAnimationState; // The current animation state of the object
Ogre::Real mHeroLength;
Ogre::AxisAlignedBox boundingBox;
Ogre::RaySceneQuery* mRaySceneQuery;
Ogre::MovableObject* colObj;
public:
Character (Ogre::String name, Ogre::SceneManager *sceneMgr, Ogre::Camera *camera);
~Character();
virtual void move (Ogre::Real elapsedTime, Ogre::Vector3 direction, Ogre::Real rotation);
virtual bool isCollision(const Ogre::Vector3& position, const Ogre::Vector3& direction);
virtual void ground(Ogre::Real elapsedTime);
bool grounded;
Ogre::SceneNode *getSightNode () {
return mSightNode;
}
Ogre::SceneNode *getCameraNode () {
return mCameraNode;
}
Ogre::SceneNode *getMainNode () {
return mMainNode;
}
Ogre::Vector3 getWorldPosition () {
return mMainNode->_getDerivedPosition ();
}
Ogre::AnimationState *getAnimationState () {
return mAnimationState;
}
void setVisible (bool visible);
};