📄 aiplayer.h
字号:
//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
#ifndef _AIPLAYER_H_
#define _AIPLAYER_H_
#ifndef _PLAYER_H_
#include "game/player.h"
#endif
class AIPlayer : public Player {
typedef Player Parent;
protected:
/// TGE_RPG
//enum MaskBits {
// MoveToMask = Parent::NextFreeMask << 0, /// 移动到指定位置
// NextFreeMask = Parent::NextFreeMask << 1
//};
public:
enum MoveState
{
ModeStop,
ModeMove,
ModeStuck,
ModeRound,///只转身
};
#ifdef TGE_RPG
enum MoveType
{
MT_NONE,
MT_DESTINATION,
MT_MOVETO,
MT_ROUND,
MT_AIM,
MT_AIMLOC
};
#endif
private:
Point3F m_ptMoveTo; // TGE_RPG 指定准备移动坐标
bool m_bMoveToSlowdown; // TGE_RPG
F32 m_fTurnRoundStep; //转身起步步长角度
bool m_bPressDown; //鼠标如果一直按着,人物将永远向鼠标方向走
MoveState mMoveState;
F32 mMoveSpeed;
F32 mMoveTolerance; // Distance from destination before we stop
Point3F mMoveDestination; // Destination for movement
Point3F mLastLocation; // For stuck check
bool mMoveSlowdown; // Slowdown as we near the destination
SimObjectPtr<GameBase> mAimObject; // Object to point at, overrides location
bool mAimLocationSet; // Has an aim location been set?
Point3F mAimLocation; // Point to look at
bool mTargetInLOS; // Is target object visible?
Point3F mAimOffset;
#ifdef TGE_RPG /// TGE_Move
MoveType m_nMoveType;
#endif
// Utility Methods
void throwCallback( const char *name );
public:
DECLARE_CONOBJECT( AIPlayer );
AIPlayer();
~AIPlayer();
virtual bool getAIMove( Move *move );
#ifdef TGE_RPG /// TGE_Move
virtual bool getNextMove(Move &curMove);
virtual void onReachGoal();
#endif
// Targeting and aiming sets/gets
void setAimObject( GameBase *targetObject );
void setAimObject( GameBase *targetObject, Point3F offset );
GameBase* getAimObject() const { return mAimObject; }
void setAimLocation( const Point3F &location );
Point3F getAimLocation() const { return mAimLocation; }
void clearAim();
// Movement sets/gets
void setMoveSpeed( const F32 speed );
F32 getMoveSpeed() const { return mMoveSpeed; }
void setMoveTolerance( const F32 tolerance );
F32 getMoveTolerance() const { return mMoveTolerance; }
void setMoveDestination( const Point3F &location, bool slowdown );
Point3F getMoveDestination() const { return mMoveDestination; }
void stopMove();
/// TGE_RPG
/// 发送移动指令到Server,由Server把移动指令派发到各Client端
#ifdef TGE_RPG /// TGE_Move
inline void setMoveTo(){m_nMoveType = MT_MOVETO;}
void setMoveTo( const Point3F &location, bool slowdown ,bool bPressDown);
void faceTo( const Point3F &ptFace,bool bFaceMe=true);
void moveTo( const Point3F &ptPos) {setMoveTo(ptPos,false,false);}
#endif
/// TGE_RPG
U32 packUpdate (NetConnection *conn, U32 mask, BitStream *stream);
void unpackUpdate(NetConnection *conn, BitStream *stream);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -