/* 文件名: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());