S
SmallBrainPerson
Guest
I've set up a simple sprite animation for the attack, i inserted some code and then it works but there's 1 problem, when i press the attack button, the animation appears for a split second and then changes into the idle animation, if i press the button again the same thing happens. What should i do?
(here's my character's step event
key_right = keyboard_check(ord("D"));
key_left = -keyboard_check(ord("A"));
key_jump = keyboard_check_pressed(vk_space);
key_down = keyboard_check(ord("S"));
key_attack = keyboard_check(ord("F"));
move = key_left + key_right;
hsp = move * movespeed;
if (vsp < 10) vsp += grav;
if (place_meeting(x,y+1,obj_parede))
{
if (key_jump) vsp = key_jump * -jumpspeed;
}
if (place_meeting(x+hsp,y,obj_parede))
{
while(!place_meeting(x+sign(hsp),y,obj_parede))
{
x += sign(hsp);
}
hsp = 0;
}
x += hsp;
if (place_meeting(x,y+vsp,obj_parede))
{
while(!place_meeting(x,y+sign(vsp),obj_parede))
{
y += sign(vsp);
}
vsp = 0;
}
y += vsp;
if (move!=0) image_xscale = move;
if (place_meeting(x,y+1,obj_parede))
{
if (move!=0) sprite_index = spr_bagulhowalk; else sprite_index = spr_bagulho;
}
else
{
if (vsp < 0) sprite_index = spr_bagulhojump; else sprite_index = spr_bagulhofall;
}
if keyboard_check_pressed (ord("F"))
{
if (place_meeting(x, y, obj_parede)) sprite_index = spr_bagulho else sprite_index = spr_bagulhoattack
}
(parede is wall in portuguese))
(here's my character's step event
key_right = keyboard_check(ord("D"));
key_left = -keyboard_check(ord("A"));
key_jump = keyboard_check_pressed(vk_space);
key_down = keyboard_check(ord("S"));
key_attack = keyboard_check(ord("F"));
move = key_left + key_right;
hsp = move * movespeed;
if (vsp < 10) vsp += grav;
if (place_meeting(x,y+1,obj_parede))
{
if (key_jump) vsp = key_jump * -jumpspeed;
}
if (place_meeting(x+hsp,y,obj_parede))
{
while(!place_meeting(x+sign(hsp),y,obj_parede))
{
x += sign(hsp);
}
hsp = 0;
}
x += hsp;
if (place_meeting(x,y+vsp,obj_parede))
{
while(!place_meeting(x,y+sign(vsp),obj_parede))
{
y += sign(vsp);
}
vsp = 0;
}
y += vsp;
if (move!=0) image_xscale = move;
if (place_meeting(x,y+1,obj_parede))
{
if (move!=0) sprite_index = spr_bagulhowalk; else sprite_index = spr_bagulho;
}
else
{
if (vsp < 0) sprite_index = spr_bagulhojump; else sprite_index = spr_bagulhofall;
}
if keyboard_check_pressed (ord("F"))
{
if (place_meeting(x, y, obj_parede)) sprite_index = spr_bagulho else sprite_index = spr_bagulhoattack
}
(parede is wall in portuguese))