Magic_GameClient/sqr/User/GameClass/CameraClass/CameraClass.nut

87 lines
1.8 KiB
Plaintext

/*
文件名:CameraClass.nut
路径:BaseClass/Actor_Ex/Map/CameraClass.nut
创建日期:2023-09-14 17:40
文件用途:摄像机对象
*/
class Camera extends Actor {
//跟随对象
MyFromParent = null;
//摄像机朝向
Direction = 1;
//摄像机朝向时间
DirectionTime = 1;
//摄像机坐标
X = 800;
Y = 450;
Z = 0;
//缩放比率
CameraRate = 1.0;
NextX = 0;
constructor() {
base.constructor();
CameraRate = 1.5;
print("创建摄像机");
}
function OnUpdate(dt) {
//左键按下 和 弹起
if (Input_IsDown(KeyCode.Left, 1)) {
X -= 0.2;
} else if (Input_IsDown(KeyCode.Right, 1)) {
X += 0.2;
} else if (Input_IsDown(KeyCode.Up, 1)) {
Y -= 0.2;
} else if (Input_IsDown(KeyCode.Down, 1)) {
Y += 0.2;
}
// print("X: " + X + "Y: " + Y);
if (MyFromParent) SyncPosByFromParent(dt);
base.OnUpdate(dt);
}
/*
* @函数作用:
*/
function SetPosition(gx, gy, gz) {
X = gx * CameraRate;
Y = gy * CameraRate;
Z = gz * CameraRate;
//刷新坐标
// FlushChildrenLayerPos();
}
//从父对象移除自己
function RemoveSelf() {
BaseObject_Removechild(ParentId, C_Object);
}
/*
* @函数作用: 增加坐标偏移
*/
function AddPosition(Type, Value) {
switch (Type) {
case 0: //X
X += Value;
break;
case 1: //Y
Y += Value;
break;
case 2: //Z
Z += Value;
break;
}
//刷新坐标
FlushChildrenLayerPos();
}
}
if (!(getroottable().rawin("CameraObject"))) getroottable().rawset("CameraObject", Camera());