我试图编写一个攻击状态,但当尝试切换到攻击状态时,没有任何事情发生。
//创建事件
my_spd = 2;
//枚举状态
enum State
{
//正常状态
normal,
//攻击状态
attack
}
//初始状态
state = State.normal;
//步骤事件
if keyboard_check(ord("E"))
{
//根据当前状态切换
switch (state)
{
case State.attack: player_attack_scr(); break;
}
}
//攻击脚本
function player_attack_scr()
{
//设置速度为0
my_spd = 0;
//检测是否有敌人
if instance_place(x, y, enemy_obj) != noone
{
//如果有敌人,则减少敌人的血量
enemy_obj.enemy_health -= 5;
}
//检测动画是否结束
if ev_animation_end
{
//切换回正常状态
switch (state)
{
case State.attack: break;
}
}
}
//问题出在这里:switch语句中使用了break关键字,导致攻击状态切换后,永远不会离开这个状态。
//建议修改为:
//switch (state)
//{
//case State.attack: player_attack_scr(); state = State.normal; break;
//}
评论 (0)