Ciao,
ho uno sprite composto da 4 frame. Ho la necessità di impostare una velocità diversa in base al frame utilizzato.
Per farmi capire meglio vi lascio un piccolo schemettino:
Utilizzo GM2. Per caso è disponibile una funzione apposita? Se non esiste e devo fare tutto tramite codice, rischio di appesantire inutilmente il gioco?
Sapete aiutarmi?
Ciao biscottino, non mi pare che gm abbia la tale funzionalità (almeno non nelle versioni che ho usato io fin'ora).
Puoi comunque ottenere questo risultato implementandolo manualmente sfruttando due variabili che gm ti mette a disposizione:
image_index, che rappresenta l'attuale frame che sta venendo renderizzato su schermo(0 based, quindi ad esempio se sta venendo riprodotto il secondo frame, image_index sarebbe uguale ad 1).
image_speed, che rappresenta la velocità di passaggio da un frame all'altro. Di base è 1, ovvero ad ogni frame di gioco l'animazione passa al frame successivo. Puoi modificarlo liberamente in qualsiasi momento. Ad esempio settandolo a 0.5, otterresti un'animazione che passa al frame successivo ogni 2 frame di gioco.
Combinando queste due variabili con uno o più if statement dovresti ottenere quello che ti serve.
Concordo con ball-man,dovrebbe essere l'unico modo.
Se però non vuoi ricorrere al codice potresti sempre aumentare i frame (copiandoli uguali) dei punti dove l'animazione deve essere più lenta,cosi anche se non con estrema precisione otterresti un risultato simile.