Sprite del salto

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
MagicFool64
Membro
Messaggi: 77
Iscritto il: 17/12/2018, 22:26
Uso: GM:Studio 1.4 Pro
Contatta:

Sprite del salto

Messaggio da MagicFool64 »

Ehi ragazzi, sapete come impostare lo sprite di quando si salta in un platform? Se ricordo bene bisogna mettere qualcosa in End Step, giusto?
L'ignoranza è la via per l'autodistruzione

Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Re: Sprite del salto

Messaggio da Vallo92 »

Devi agire nell'evento draw, se vuoi disegnare uno sprite differente, e/o cambiare lo sprite_index dell'instanza.
Esempio:

Codice: Seleziona tutto

draw_sprite(sprite_index, image_index, x, y);
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

Avatar utente
MagicFool64
Membro
Messaggi: 77
Iscritto il: 17/12/2018, 22:26
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Sprite del salto

Messaggio da MagicFool64 »

Vallo92 ha scritto:Devi agire nell'evento draw, se vuoi disegnare uno sprite differente, e/o cambiare lo sprite_index dell'instanza.
Esempio:

Codice: Seleziona tutto

draw_sprite(sprite_index, image_index, x, y);
Io intendevo fare l'animazione del salto quando il personaggio salta
L'ignoranza è la via per l'autodistruzione

Avatar utente
Scario
Moderatore
Messaggi: 2707
Iscritto il: 26/05/2003, 20:29
Specialità: Tergiversare
Uso: GM:Studio 2
Contatta:

Re: Sprite del salto

Messaggio da Scario »

Devi cambiare lo sprite index nella parte di codice dove gestisci il salto / dove verifichi che se la velocità verticale è uguale a 0 il personaggio di ferma. Poi, come dice Vallo, usi il suo codice nel draw event per disegnarlo. Tieni conto che tutte le funzioni draw vanno appunto solo negli eventi draw.
Immagine

Avatar utente
MagicFool64
Membro
Messaggi: 77
Iscritto il: 17/12/2018, 22:26
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Sprite del salto

Messaggio da MagicFool64 »

Scario ha scritto:Devi cambiare lo sprite index nella parte di codice dove gestisci il salto / dove verifichi che se la velocità verticale è uguale a 0 il personaggio di ferma. Poi, come dice Vallo, usi il suo codice nel draw event per disegnarlo. Tieni conto che tutte le funzioni draw vanno appunto solo negli eventi draw.
Ho fatto con lo script

Codice: Seleziona tutto

if vspeed = -10
    sprite_index = spr_jump
else if vspeed = 0
    sprite_index = spr_walk
Ma lo sprite della camminata la applica quando cade. Invece per lo sprite della caduta cosa devo fare?
L'ignoranza è la via per l'autodistruzione

Avatar utente
Vallo92
GMI Advanced
Messaggi: 1508
Iscritto il: 15/07/2011, 20:26
Specialità: Grafico
Uso: GM:Studio 2
Contatta:

Re: Sprite del salto

Messaggio da Vallo92 »

Senza avere il codice di movimento che utilizzo sotto mano, è un po' difficile risponderti...
Se lo sprite di camminata viene applicato quando cade allora imposta al posto di quello lo sprite di caduta, e fai un ulteriore check per lo sprite di camminata (ad esempio vspeed == 0 && collision con il terreno).

P.S.
Stai molto attento a come fai i check all'interno degli if. Nel tuo caso stai assegnando dei valori a vspeed (=) e non stai facendo un controllo di uguaglianza (==).
-Questi occhiali da sole le stanno benissimo. Vuole provarli con le lenti più scure?
- Si vede che le sto guardando le tette?
- Si
- Allora si

Avatar utente
MagicFool64
Membro
Messaggi: 77
Iscritto il: 17/12/2018, 22:26
Uso: GM:Studio 1.4 Pro
Contatta:

Re: Sprite del salto

Messaggio da MagicFool64 »

Vallo92 ha scritto:Senza avere il codice di movimento che utilizzo sotto mano, è un po' difficile risponderti...
Se lo sprite di camminata viene applicato quando cade allora imposta al posto di quello lo sprite di caduta, e fai un ulteriore check per lo sprite di camminata (ad esempio vspeed == 0 && collision con il terreno).

P.S.
Stai molto attento a come fai i check all'interno degli if. Nel tuo caso stai assegnando dei valori a vspeed (=) e non stai facendo un controllo di uguaglianza (==).
Ci sono riuscito con

Codice: Seleziona tutto

if vspeed < 0
    sprite_index = spr_jump
else if vspeed > 0
    sprite_index = spr_fall
else if vspeed = 0
    sprite_index = spr_walk
L'ignoranza è la via per l'autodistruzione

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti