73 lines
1.8 KiB
Plaintext
73 lines
1.8 KiB
Plaintext
/*
|
||
文件名:Move.nut
|
||
路径:Game/CharacterScript/Common/Move.nut
|
||
创建日期:2025-10-03 02:02
|
||
文件用途:角色移动脚本
|
||
*/
|
||
|
||
/**
|
||
*
|
||
* @function
|
||
* @param {CharacterObject} obj
|
||
* @returns {void}
|
||
*/
|
||
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
|
||
* @param {CharacterObject} obj
|
||
* @returns {void}
|
||
*/
|
||
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
|
||
if (fabs(arr[0]) > 0.35) XOffset = arr[0] > 0 ? Speed : -Speed
|
||
else XOffset = 0
|
||
local YOffset
|
||
//当摇杆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
|
||
* @param {CharacterObject} obj
|
||
* @param {integer} DeltaTime
|
||
* @returns {void}
|
||
*/
|
||
function ProcState_Character_Move(obj, DeltaTime) {
|
||
//获取移动数据
|
||
local arr = obj.GetVars("_move_data_", "float")
|
||
if (arr[0] == 0 && arr[1] == 0) {
|
||
obj.SetState(0)
|
||
}
|
||
}
|