⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 camera.cpp.svn-base

📁 自己做的小游戏
💻 SVN-BASE
字号:
#include "camera.h"
#include "game_object.h"
#include "fsm.h"
#include "msgroute.h"
#include "msg.h"

#include "../gamedata/gamedata.h"




GameObject	cameraGO;

float		cameraMoveSpeed;
Vertex		cameraDest;



float cRotX, cRotY;			// camera相对于世界坐标系原点的偏转角
float mouseSpeed;

//初始化摄像机
void InitCamera()
{
	GOInitialize(&cameraGO, UINT_MAX-1);			//初始化GO
	FSMInitialize(cameraGO.unique_id, FSM_Camera);	//关联状态机
	camera.radius = 50;		//设置摄像机与player的距离
	mouseSpeed = 0.001f;	//灵敏度
	cameraMoveSpeed = 30.0f;		//移动速度
}


//每一帧的更新
void UpdateCamera()
{
	GOUpdate(&cameraGO);
}

//使摄像机跟随player
void SetCameraWithPlayer()
{
	SendMsg(MSG_CameraWithPlayer, cameraGO.unique_id, cameraGO.unique_id);
}


//设置
void SetCamera(Vertex position, Vertex lookat, Vertex up)
{
	SetCameraPos(position);
	SetCameraLookAt(lookat);
	//SetCameraUp(up);
}

//设置位置
void SetCameraPos(Vertex pos)
{
	extra_data ex;
	ex.pos = pos;
	SendMsg(MSG_CameraSetPosition, cameraGO.unique_id, cameraGO.unique_id, ex);
}


void SetCameraLookAt(Vertex lookat)
{
	extra_data ex;
	ex.pos = lookat;
	SendMsg(MSG_CameraSetLookAt, cameraGO.unique_id, cameraGO.unique_id, ex);
}


void SetCameraUp(Vertex up)
{
	extra_data ex;
	ex.pos = up;
	SendMsg(MSG_CameraSetUp, cameraGO.unique_id, cameraGO.unique_id, ex);
}


//在脚本动画里使摄像机从一个地方匀速移动到另一个地方
void MoveCameraFromTo(Vertex from, Vertex to)
{
	SendMsg(MSG_CameraAuto, cameraGO.unique_id, cameraGO.unique_id);

	extra_data ex;
	ex.pos = from;
	SendMsg(MSG_CameraSetPosition, cameraGO.unique_id, cameraGO.unique_id, ex);

	ex.pos = to;
	SendMsg(MSG_CameraSetDest, cameraGO.unique_id, cameraGO.unique_id, ex);

}



void SetCameraFree()
{
	SendMsg(MSG_CameraFree, cameraGO.unique_id, cameraGO.unique_id);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -