70 lines
2.0 KiB
C++
70 lines
2.0 KiB
C++
#ifndef _SKMoveControler_h_
|
|
#define _SKMoveControler_h_
|
|
|
|
#include "K3DTypes.h"
|
|
#include <mmo/ArType.h>
|
|
|
|
class SGameAvatarEx;
|
|
class SGameSystem;
|
|
class SGameCamera;
|
|
class SCommandSystem;
|
|
class SGameWorld;
|
|
struct ArcadiaClient;
|
|
struct SGameMessage;
|
|
|
|
|
|
|
|
#define MOVE_NONE 0
|
|
#define MOVE_UP 1
|
|
#define MOVE_DOWN 2
|
|
#define MOVE_LEFT 4
|
|
#define MOVE_RIGHT 8
|
|
|
|
#define UPDATE_TIME_RATE 0.8f // ONE_STEP_KMOVE_LENGTH를 이동했을 때, 걸리는 시간의 비율, 주기적으로 보내는 시간
|
|
#define LAST_MOVE_LEN_RATE 0.3f // 마지막 이동 패킷을 보낼 때, 이동 거리
|
|
#define ONE_STEP_KMOVE_LENGTH 24.0f // 한번 클릭으로 갈 수 있는 최소 거리, 적당한 거리를 임의로 정했다.
|
|
#define MIN_CHANGED_CAM_DEGREE 30.0f // 디버깅을 쉽게 하기 위해서 우선 degree값을 넣는다.
|
|
|
|
|
|
class SKMoveControler
|
|
{
|
|
public:
|
|
SKMoveControler();
|
|
~SKMoveControler();
|
|
|
|
void initialize (SCommandSystem* commandSystem, SGameSystem* gameSystem, SGameCamera* gameCamera, SGameWorld* gameWorld, ArcadiaClient* arObject);
|
|
void start_move (K3DVector* curr_pos, float curr_dir, int key_status , K3DVector* ptarget_pos, AR_TIME elapsed ,int send_server);
|
|
bool get_move_pos (K3DVector* curr_pos, float* curr_dir, K3DVector* ptargetPos, AR_TIME* pelapsed,float rate);
|
|
void send_move (K3DVector* ptarget_pos,float move_dir,int key_status, bool send_server );
|
|
|
|
void stop_move (bool send_last_move);
|
|
float get_key_move_dir (int key_status);
|
|
void send_last_move (void);
|
|
|
|
bool m_automove;
|
|
float m_sent_key_status;
|
|
float m_sent_move_dir;
|
|
K3DVector m_sent_pos;
|
|
int m_sent_time;
|
|
AR_TIME m_arTime;
|
|
sUpdateTime<AR_TIME> m_moveUpdate;
|
|
|
|
|
|
void process (int gameRef);
|
|
void procMoveMsg (SGameMessage* msg);
|
|
void procMouseMsg (SGameMessage* msg);
|
|
void procMsgResult (SGameMessage* msg);
|
|
|
|
|
|
private:
|
|
|
|
SCommandSystem* m_commandSystem;
|
|
SGameSystem* m_gameSystem;
|
|
SGameCamera* m_gameCamera;
|
|
SGameWorld* m_gameWorld;
|
|
ArcadiaClient* m_arObject;
|
|
|
|
};
|
|
|
|
|
|
#endif |