Hola querida comunidad!

Quisiera que me ayuden con esto: ¿Cómo puedo hacer para que al cambiar de sprite mi personaje, cambie su máscara de colisión, considerando que el objeto de mi personaje ya tiene una máscara global establecida.

Ejemplo de lo que quiero hacer:

[gml]
Obj_Player

Event STEP:

if mouse_check_button(mb_left)
{
sprite_index = Spr_Golpeando
}

[/gml]

Aquí lo que quiero hacer es que cuando presione click izquierdo de golpes, y por lo tanto cuando esté con el sprite golpeando, la máscara cambie solo a los puños, y no a todo el cuerpo del personaje como cuando está en reposo.

Espero me haya explicado bien.

A cada sprite se le puede asignar una máscara de colisión diferente. En la ventana de propiedades del sprite presiona el botón "Modify Mask".
Yo prefiero agreagar sprites especiales que sirvan como máscaras de colisión, así no tengo que editar todos los sprites. En cada cambio de sprite asigno tres variables:
[gml]
sprite_index = spJugadorAtq1;
mask_index = spMascara14x32;
image_speed = 0.2;
[/gml]

Algo que ayuda a controlar el tiempo de las animaciones es programar con estados.


Creo que Slazgher es un bot. Han aparecido algunos recientemente. Ponen la misma frase en diferentes temas.

Aquí hay un ejemplo de programación con estados:
http://www.comunidadgm.org/preguntas-y-respuestas/cambiar-de-animacion-dos-veces-(solucionado)/