Tal cual te lo dijeron tambien en el foro angloparlante, el problema esta en el step, especificamente donde cambias los sprites, si ya usas ese sistema para cambiar los sprites, deberias seguir usando el mismo sistema haciendole ciertos ajustes para acoplar el nuevo sprite.
En Create Event agregamos una variable mas (la puedes llamar como sea)
En Step event acoplamos la variable spear y el cambio de sprite. Ademas de agregar el uso de la variable al usar la tecla correspondiente.
Ademas en el evento Animation End:
Para que vuelva a los sprites normales al terminar de realizar la animacion.
No lo eh probado, pero deberia funcionar.
-------------- editado
La condicion del Animation End deberia quedar asi:
Probado! :)
En Create Event agregamos una variable mas (la puedes llamar como sea)
Código [Seleccionar]
spear = 0;
En Step event acoplamos la variable spear y el cambio de sprite. Ademas de agregar el uso de la variable al usar la tecla correspondiente.
Código [Seleccionar]
//Walk Sprites
if (grounded)
{
if (hsp == 0 ) and (spear == 0)
{
sprite_index = spr_hero_idle_right;
}
else if (spear == 0)
{
if (!sprite_index = spr_hero_right) image_index = 0;
sprite_index = spr_hero_right;
}
else
{
if (sprite_index != spr_hero_spear) sprite_index = spr_hero_spear;
}
}
else //Jump Sprites:
{
if (vsp<0)
{
sprite_index = spr_hero_jump;
}
else
{
sprite_index = spr_hero_fall1;
if (vsp>12)
{
sprite_index = spr_hero_fall2;
}
}
}
//Spear:
if (Key_Spear)
{
if (grounded)
{
spear = 1;
instance_create(x+104,y+10,obj_spear);
hsp = 0;
}
}
Ademas en el evento Animation End:
Para que vuelva a los sprites normales al terminar de realizar la animacion.
Código [Seleccionar]
if spear == 1 and sprite_index == spr_hero_spear
{
spear = 0;
}
No lo eh probado, pero deberia funcionar.
-------------- editado
La condicion del Animation End deberia quedar asi:
Código [Seleccionar]
if spear == 1 and sprite_index == spr_hero_spear
Probado! :)