Files
2025-10-18 16:14:25 +08:00

73 lines
1.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
文件名: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)
}
}