Seguramente los objetos están en colisión más de un step. Debería existir una variable que indique el estado de la colisión en el step anterior.
Esta es una forma
[gml]
//Create
colision_previa = false;
//Step
colision_actual = place_meeting( x,y+sign(vy), obPared );
if( colision_actual and not colision_previa )
image_index += 1;
colision_previa = colision_actual;
[/gml]
Y esta es otra forma
[gml]
//Create
colision = false;
//Step
if place_meeting( x,y+sign(vy), obPared)
{
if( not colision )
{
image_index += 1;
colision = true;
}
}
else colision = false;
[/gml]
Esta es una forma
[gml]
//Create
colision_previa = false;
//Step
colision_actual = place_meeting( x,y+sign(vy), obPared );
if( colision_actual and not colision_previa )
image_index += 1;
colision_previa = colision_actual;
[/gml]
Y esta es otra forma
[gml]
//Create
colision = false;
//Step
if place_meeting( x,y+sign(vy), obPared)
{
if( not colision )
{
image_index += 1;
colision = true;
}
}
else colision = false;
[/gml]