52 lines
1.5 KiB
Plaintext
52 lines
1.5 KiB
Plaintext
/*
|
||
文件名:Move.nut
|
||
路径:Game/CharacterScript/Common/Move.nut
|
||
创建日期:2025-10-03 02:02
|
||
文件用途:角色移动脚本
|
||
*/
|
||
|
||
function checkCanChangeState_Character_Move(obj) {
|
||
//获取当前状态
|
||
local CurState = obj.GetState();
|
||
//得到摇杆的数据 X 和 Y的范围 -1.0 ~ 1.0
|
||
local arr = obj.GetVars("_move_data_", "float");
|
||
if (fabs(arr[0]) > 0.35 || fabs(arr[1]) > 0.35) {
|
||
return true;
|
||
} else return false;
|
||
}
|
||
|
||
function SetState_Character_Move(obj) {
|
||
//获取移动数据
|
||
local arr = obj.GetVars("_move_data_", "float");
|
||
|
||
//设置人物朝向 摇杆X轴大于0则朝右,小于0则朝左
|
||
local SetValue = arr[0] > 0 ? 0 : 1;
|
||
if (SetValue != obj.GetDirection()) {
|
||
if (fabs(arr[0]) > 0.35) obj.SetDirection(SetValue);
|
||
//设置动作
|
||
obj.SetAction("move");
|
||
} else {
|
||
if (obj.GetState() != 1) obj.SetAction("move");
|
||
}
|
||
|
||
local Speed = 250;
|
||
local Dir = obj.GetDirection();
|
||
local Pos = obj.GetPosition();
|
||
local XOffset = null;
|
||
if (fabs(arr[0]) > 0.35) XOffset = ((arr[0] > 0 ? Speed : -Speed));
|
||
else XOffset = 0;
|
||
local YOffset = null;
|
||
//当摇杆Y轴大于0.35或小于-0.35时,设置Y轴偏移量
|
||
if (fabs(arr[1]) > 0.35) YOffset = (arr[1] > 0 ? Speed : -Speed);
|
||
else YOffset = 0;
|
||
|
||
obj.SetSpeed(XOffset, YOffset, null);
|
||
}
|
||
|
||
function ProcState_Character_Move(obj, DeltaTime) {
|
||
//获取移动数据
|
||
local arr = obj.GetVars("_move_data_", "float");
|
||
if (arr[0] == 0 && arr[1] == 0) {
|
||
obj.SetState(0);
|
||
}
|
||
} |