87 lines
1.8 KiB
Plaintext
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());
|