Код
if mayMove == true {
if keyboard_check(ord("W")) and place_empty(x,y-1,obj_collision) { y -= spd; isMove = 1;}
if keyboard_check(ord("S")) and place_empty(x,y+1,obj_collision) { y += spd; isMove = 1}
if keyboard_check(ord("A")) and place_empty(x-1,y,obj_collision) { x -= spd; isMove = 1; image_xscale = 1;}
if keyboard_check(ord("D")) and place_empty(x+1,y,obj_collision) { x += spd; isMove = 1; image_xscale = -1;}
if keyboard_check(vk_nokey) {isMove = 0;}
}
switch isMove{
case 0: {sprite_index = img_PlayerStop;} break;
case 1: {sprite_index = img_PlayerMovement;} break;
case 2: {sprite_index = img_PlayerAttack;} break;
}
//////////////////////////////////////////////
if keyboard_check(ord("E")) {
attack = true;
mayMove = false;
}
if (attack == true) {
isMove = 2;
if (image_index = 19) {
attack = false;
mayMove = true;
isMove = 1;
//exit;
}
}
Я попытался проверить переменную, но анимация снова зацикливается... Мне нужно чтобы когда я нажимал на E (нажал и отпустил), то проигрывалась один раз анимация, а потом снова состояние покояДобавлено (03 Апреля 2022, 01:12)
---------------------------------------------
Я решил проблему. Ошибка оказалась в первых строчках обозначающих движение персонажа. А метод с переменными очень помог (код стало понятнее читать) *спасибо*
Код
if keyboard_check(ord("E")) {
attack = true;
}
if (attack = true){
isMove = 2;
if (image_index > 18) {
isMove = 0;
attack = false;
}
}