* Undoing the previous applyMovement() changes for characters. This was causing bugs for the Motion Actuator. * Creating a Character Motion type for the Motion Actuator with specific controls for characters. This includes moving, rotating and jumping. * Adding a KX_CharacterWrapper.walkDirection to set the character's direction and speed. Note, this also resolves the following bugs: [#33585] "Setting dLoc of motion actuator [0,0,0] via python won't stop object" reported by Manuel Bellersen (urfoex) [#33503] "Character physics type won´t accept more than one motion anymore" reported by Mr Larodos
40 lines
772 B
C++
40 lines
772 B
C++
|
|
/** \file PHY_ICharacter.h
|
|
* \ingroup phys
|
|
*/
|
|
|
|
#ifndef __PHY_ICHARACTER_H__
|
|
#define __PHY_ICHARACTER_H__
|
|
|
|
//PHY_ICharacter provides a generic interface for "character" controllers
|
|
|
|
#ifdef WITH_CXX_GUARDEDALLOC
|
|
#include "MEM_guardedalloc.h"
|
|
#endif
|
|
|
|
class PHY_ICharacter
|
|
{
|
|
public:
|
|
virtual ~PHY_ICharacter(){};
|
|
|
|
virtual void Jump()= 0;
|
|
virtual bool OnGround()= 0;
|
|
|
|
virtual float GetGravity()= 0;
|
|
virtual void SetGravity(float gravity)= 0;
|
|
|
|
virtual int GetMaxJumps()= 0;
|
|
virtual void SetMaxJumps(int maxJumps)= 0;
|
|
|
|
virtual int GetJumpCount()= 0;
|
|
|
|
virtual void SetWalkDirection(PHY__Vector3 dir)=0;
|
|
virtual PHY__Vector3 GetWalkDirection()=0;
|
|
|
|
#ifdef WITH_CXX_GUARDEDALLOC
|
|
MEM_CXX_CLASS_ALLOC_FUNCS("GE:PHY_ICharacter")
|
|
#endif
|
|
};
|
|
|
|
#endif //__PHY_ICHARACTER_H__
|