Aha, czyli musisz wymazac z kodu image_single, poniewaz jest to stara zmienna z czasow GM 5.x, a teraz nie powinno jej się stosować. Zamiast tego masz image_index ( numer klatki w spricie ) oraz image_speed ( 0 - stop, 1 pelna szybkosc, ulamki - rozne stopnie szybkosci animacji).
image_single = X to to samo co:
image_index = X; image_speed = 0;
Ten kod co wcześniej podałem jest tylko do zmiany sprite'a. Aby animacja była tylko w czasie ruchu obiektu to:
if ( speed > 0 )
{
image_speed = 0.5;
}
else
{
image_speed = 0;
}
A co do ruchu, to moze tak ( w alarm[0] ):
//generujemy kierunek:
direction = round( random( 8 )) * 45; //wylosuj liczbe zaokraglona do jednosci z przedzialu 0 - 7 i pomnoz razy kąt.
alarm[0] = ( round(random(10)) + 3 ) * room_speed; // wlacz ponownie losowanie ruchu za minimum 3 do 13 sekund
//wybieramy odpowiedni sprite:
switch ( direction )
{
case 0: sprite_index = nazwa_spr1; break;
case 45: sprite_index = nazwa_spr2; break;
case 90: sprite_index = nazwa_spr3; break;
case 135: sprite_index = nazwa_spr4; break;
case 180: sprite_index = nazwa_spr5; break;
case 225: sprite_index = nazwa_spr6; break;
case 270: sprite_index = nazwa_spr7; break;
default: sprite_index = spr // nazwa sprita domyslnego gdyby zaden case nie pasowal (ale chyba nigdy deafult tutaj sie nie uruchomi
}
Teraz moze w stepie damy taki waruneczek:
if ( speed > 0 )
image_speed = 0;
else
image_speed = 0.5;