Le collisioni, il mio tallone d'Achille

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Avatar utente
Wolfrost
Membro super
Messaggi: 692
Iscritto il: 03/08/2014, 13:08
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Una galassia lontana lontana...
Contatta:

Le collisioni, il mio tallone d'Achille

Messaggio da Wolfrost »

Ho un rapporto molto brutto con le collisioni, ogni volta che tento di farle ho problemi :hum:
Vi mostro il codice che uso di solito (serve per un platform game)

http://gyazo.com/621b180f69ccaf1bff2be4d8fff91388

Mi potreste dire dove sbaglio? (Ho inserito questo codice nello Step Event del Player)
Nel create event ho messo "gravity = 0.2" ed il personaggio alla creazione effettivamente casca, ma quando collide con l' obj_Block inizia ad affondare lentamente come se fosse nelle sabbie mobili... Cosa potrebbe mai essere? :cry:

Ah, inoltre ho un altro problema: vorrei anche girare il mio sprite quando vado a sinistra (il mio sprite è rivolto verso destra), ma non voglio creare altri sprite girati, così uso il comando "image_xscale = -1" per girare lo sprite verso sinistra, solo che il risultato è più o meno questo:
Normale (verso destra):
http://gyazo.com/93a1c41efad94f64bb68d6b4d3b5cac9
Girato (verso sinistra):
http://gyazo.com/af418b67cbfa14efef7c3ee33612c6dd
Come potete vedere quando va verso sinistra è come se si schiacciasse ai lati... dov'è che sbaglio!?!? :piagne:

Richiedo aiuto!!
Immagine

Immagine

Avatar utente
gameplay_extreme
GMI VIP
Messaggi: 3824
Iscritto il: 13/11/2010, 16:23
Uso: GM:Studio 2
Contatta:

Re: Le collisioni, il mio tallone d'Achille

Messaggio da gameplay_extreme »

evidentemente quando c'è collisione (da quando tocca terra a quando inizia a sprofondare nel pavimento) viene eseguito continuamante "vspeed = 0" che dovrebbe fermare il personaggio, ho detto dovrebbe perché ti sei scordato di una cosa: la gravità non ha subito nessuna disattivazione, continua a fare effetto (anche se il continuo riportare vspeed a 0 gli da una grossa smorzata).

per quanto riguarda image_xscale = -1 sono perplesso: -1 significa che lo sprite è disegnato ribaltato, quella alterazione di proporzione che ci hai mostrato non deovrebbe esserci in teoria...
Immagine
clicca sul logo qui sopra per info e download riguardo ai miei software o per sapere come si crea un videogioco!

iscriviti qui gratuitamente a GMI !
Spoiler
- Una curiosità: come mai quell' ordine ?
- Perché formava una scaletta molto carina da vedere.


"ah ah...grazie alla annotazione scientifica ti ho fregato!"
(come disse la calcolatrice al display)

Avatar utente
Wolfrost
Membro super
Messaggi: 692
Iscritto il: 03/08/2014, 13:08
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: Una galassia lontana lontana...
Contatta:

Re: Le collisioni, il mio tallone d'Achille

Messaggio da Wolfrost »

gameplay_extreme ha scritto:evidentemente quando c'è collisione (da quando tocca terra a quando inizia a sprofondare nel pavimento) viene eseguito continuamante "vspeed = 0" che dovrebbe fermare il personaggio, ho detto dovrebbe perché ti sei scordato di una cosa: la gravità non ha subito nessuna disattivazione, continua a fare effetto (anche se il continuo riportare vspeed a 0 gli da una grossa smorzata).

per quanto riguarda image_xscale = -1 sono perplesso: -1 significa che lo sprite è disegnato ribaltato, quella alterazione di proporzione che ci hai mostrato non deovrebbe esserci in teoria...
Era proprio per questo che volevo parlare in privato con qualcuno che ne sapesse più di me, così potevamo risolvere assieme alcune delle mie lacune col GM (ce ne ho molte perchè ho seguito solo tutorials inglesi e quindi ho capito un buon 70%)...
Immagine

Immagine

Avatar utente
pacmino
GMI Guru
Messaggi: 2569
Iscritto il: 03/06/2009, 16:38
Specialità: Scazzato cronico
Uso: GM:Studio 2
Località: Seconda stella a destra questo è il cammino e poi dritto, fino al mattino...
Contatta:

Re: Le collisioni, il mio tallone d'Achille

Messaggio da pacmino »

se devi farci vedere pozioni di codice baste che le copi qui sul forum inserendo nel tag code

comunque non è chiaro perchè vuoi fare quella cosa lì, nei platform di solito si usa in step

Codice: Seleziona tutto

// Gravità

if place_free(x,y+1)
{
gravity = 0.5;
}
else
{
gravity = 0;
}
in questo modo se sotto ai piedi non ha terreno allora la gravità svolge la sua azione altrimenti è zero

per l'immagine schiacciata bisognerebbe vedere il codice complessivo potrebbero esserci altre parti del codice che strechano lo sprite

se image_xscale = -1 e image_xscale = 1 per girare il personaggio l'origine dello sprite deve essere centrato per lo meno sull'asse x
Immagine

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 34 ospiti