Salto infinito!

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Sharkiller
Newbie
Messaggi: 8
Iscritto il: 06/09/2017, 12:37
Uso: GameMaker 8.1
Contatta:

Re: Salto infinito!

Messaggio da Sharkiller »

Sharkiller ha scritto:
marcyblaze ha scritto:
Sharkiller ha scritto:
marcyblaze ha scritto:Il codice per la collisione con il muro è vspeed = 0; gravity = 0; ho capito bene? Se è così ti consiglio di fare

Codice: Seleziona tutto

//Horizontal Collision
if place_meeting(x+hsp,y,obj_muropavimento)
{
    while (!place_meeting(x+sign(hsp),y,obj_muropavimento)) x+=sign(hsp);
    hsp = 0;
}

x += hsp;

//Vertical Collision
if place_meeting(x,y+vsp,obj_muropavimento) 
{
    while (!place_meeting(x,y+sign(vsp),obj_muropavimento)) y+=sign(vsp);
    if (sign(vsp) == 1) 
    {
        grounded = 1;
    }
    vsp = 0;
}
else
{
    grounded = 0;
}
y += vsp;
hsp sarebbe hspeed, vsp sarebbe vspeed e grounded è una variabile che uso per controllare se il giocatore sta a terra oppure no, per evitare il salto infinito.
Scusa il ritardo, ma ho visto ora la risposta.
Comunque grazie mille, ma non funziona. Il mio personaggio quando collide con la parete rimane bloccato se continuo ad andare in quella direzione, e se rilascio si ferma a mezz'aria. Io vorrei che quando collide, a priori scivoli verso il pavimento. Ci ero riuscito (se non ricordo male) con

Codice: Seleziona tutto

if place_meeting (x,y,obj_wall2)
{
vspeed=4;
}
invece quando collideva col pavimento usavo

Codice: Seleziona tutto

vspeed=0;
gravity=0;
Ma appena ho salvato e riaperto il gioco non ha più funzionato e non avevo modificato niente..
Ma il codice che ti ho inviato dove lo hai messo? Mi sono dimenticato di dirti che va nello Step Event, quello normale.
Si l'ho messo nello step event del personaggio. E nella collisione col muro gravity e vsp a 0. Adesso ogni tanto mentre cammino mi si blocca dopo aver fatto un salto oppure quando atterro. Può esserci un problema col programma?

Sharkiller
Newbie
Messaggi: 8
Iscritto il: 06/09/2017, 12:37
Uso: GameMaker 8.1
Contatta:

Re: Salto infinito!

Messaggio da Sharkiller »

Sharkiller ha scritto:
marcyblaze ha scritto:
Sharkiller ha scritto:
marcyblaze ha scritto:Il codice per la collisione con il muro è vspeed = 0; gravity = 0; ho capito bene? Se è così ti consiglio di fare

Codice: Seleziona tutto

//Horizontal Collision
if place_meeting(x+hsp,y,obj_muropavimento)
{
    while (!place_meeting(x+sign(hsp),y,obj_muropavimento)) x+=sign(hsp);
    hsp = 0;
}

x += hsp;

//Vertical Collision
if place_meeting(x,y+vsp,obj_muropavimento) 
{
    while (!place_meeting(x,y+sign(vsp),obj_muropavimento)) y+=sign(vsp);
    if (sign(vsp) == 1) 
    {
        grounded = 1;
    }
    vsp = 0;
}
else
{
    grounded = 0;
}
y += vsp;
hsp sarebbe hspeed, vsp sarebbe vspeed e grounded è una variabile che uso per controllare se il giocatore sta a terra oppure no, per evitare il salto infinito.
Scusa il ritardo, ma ho visto ora la risposta.
Comunque grazie mille, ma non funziona. Il mio personaggio quando collide con la parete rimane bloccato se continuo ad andare in quella direzione, e se rilascio si ferma a mezz'aria. Io vorrei che quando collide, a priori scivoli verso il pavimento. Ci ero riuscito (se non ricordo male) con

Codice: Seleziona tutto

if place_meeting (x,y,obj_wall2)
{
vspeed=4;
}
invece quando collideva col pavimento usavo

Codice: Seleziona tutto

vspeed=0;
gravity=0;
Ma appena ho salvato e riaperto il gioco non ha più funzionato e non avevo modificato niente..
Ma il codice che ti ho inviato dove lo hai messo? Mi sono dimenticato di dirti che va nello Step Event, quello normale.
Si l'ho messo nello step event del personaggio. E nella collisione col muro gravity e vsp a 0
Ok ora funziona ma non funziona il salto(prima quando collidevo andava anche mentre tenevo premuto la freccia direzionale, adesso mi devo fermare, saltare dritto e poi muovermi) e dopo i salti spesso si blocca nel pavimento e non si muove piu :(

Avatar utente
marcyblaze
Membro
Messaggi: 81
Iscritto il: 02/10/2014, 19:41
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: sotto i ponti
Contatta:

Re: Salto infinito!

Messaggio da marcyblaze »

Sharkiller ha scritto:
Sharkiller ha scritto:
marcyblaze ha scritto:
Sharkiller ha scritto:
marcyblaze ha scritto:Il codice per la collisione con il muro è vspeed = 0; gravity = 0; ho capito bene? Se è così ti consiglio di fare

Codice: Seleziona tutto

//Horizontal Collision
if place_meeting(x+hsp,y,obj_muropavimento)
{
    while (!place_meeting(x+sign(hsp),y,obj_muropavimento)) x+=sign(hsp);
    hsp = 0;
}

x += hsp;

//Vertical Collision
if place_meeting(x,y+vsp,obj_muropavimento) 
{
    while (!place_meeting(x,y+sign(vsp),obj_muropavimento)) y+=sign(vsp);
    if (sign(vsp) == 1) 
    {
        grounded = 1;
    }
    vsp = 0;
}
else
{
    grounded = 0;
}
y += vsp;
hsp sarebbe hspeed, vsp sarebbe vspeed e grounded è una variabile che uso per controllare se il giocatore sta a terra oppure no, per evitare il salto infinito.
Scusa il ritardo, ma ho visto ora la risposta.
Comunque grazie mille, ma non funziona. Il mio personaggio quando collide con la parete rimane bloccato se continuo ad andare in quella direzione, e se rilascio si ferma a mezz'aria. Io vorrei che quando collide, a priori scivoli verso il pavimento. Ci ero riuscito (se non ricordo male) con

Codice: Seleziona tutto

if place_meeting (x,y,obj_wall2)
{
vspeed=4;
}
invece quando collideva col pavimento usavo

Codice: Seleziona tutto

vspeed=0;
gravity=0;
Ma appena ho salvato e riaperto il gioco non ha più funzionato e non avevo modificato niente..
Ma il codice che ti ho inviato dove lo hai messo? Mi sono dimenticato di dirti che va nello Step Event, quello normale.
Si l'ho messo nello step event del personaggio. E nella collisione col muro gravity e vsp a 0
Ok ora funziona ma non funziona il salto(prima quando collidevo andava anche mentre tenevo premuto la freccia direzionale, adesso mi devo fermare, saltare dritto e poi muovermi) e dopo i salti spesso si blocca nel pavimento e non si muove piu :(
Allora non so cosa dirti. Hai creato la variabile grounded e settata su 1? Serve per il codice che ti avevo dato, se questo non risolve il tuo problema non so cosa fare.

Sharkiller
Newbie
Messaggi: 8
Iscritto il: 06/09/2017, 12:37
Uso: GameMaker 8.1
Contatta:

Re: Salto infinito!

Messaggio da Sharkiller »

marcyblaze ha scritto:
Sharkiller ha scritto:
Sharkiller ha scritto:
marcyblaze ha scritto:
Sharkiller ha scritto:
Scusa il ritardo, ma ho visto ora la risposta.
Comunque grazie mille, ma non funziona. Il mio personaggio quando collide con la parete rimane bloccato se continuo ad andare in quella direzione, e se rilascio si ferma a mezz'aria. Io vorrei che quando collide, a priori scivoli verso il pavimento. Ci ero riuscito (se non ricordo male) con

Codice: Seleziona tutto

if place_meeting (x,y,obj_wall2)
{
vspeed=4;
}
invece quando collideva col pavimento usavo

Codice: Seleziona tutto

vspeed=0;
gravity=0;
Ma appena ho salvato e riaperto il gioco non ha più funzionato e non avevo modificato niente..
Ma il codice che ti ho inviato dove lo hai messo? Mi sono dimenticato di dirti che va nello Step Event, quello normale.
Si l'ho messo nello step event del personaggio. E nella collisione col muro gravity e vsp a 0
Ok ora funziona ma non funziona il salto(prima quando collidevo andava anche mentre tenevo premuto la freccia direzionale, adesso mi devo fermare, saltare dritto e poi muovermi) e dopo i salti spesso si blocca nel pavimento e non si muove piu :(
Allora non so cosa dirti. Hai creato la variabile grounded e settata su 1? Serve per il codice che ti avevo dato, se questo non risolve il tuo problema non so cosa fare.
Va bene grazie mille lo stesso :)

Avatar utente
marcyblaze
Membro
Messaggi: 81
Iscritto il: 02/10/2014, 19:41
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: sotto i ponti
Contatta:

Re: Salto infinito!

Messaggio da marcyblaze »

Altrimenti l'unico modo è vedere io stesso il progetto, perché sicuramente c'è qualcosa che mi sfugge.

Avatar utente
Simsure
Membro
Messaggi: 223
Iscritto il: 13/09/2013, 21:54
Specialità: Programmazione
Uso: GM:Studio 2
Località: dietro di te...
Contatta:

Re: Salto infinito!

Messaggio da Simsure »

Lo sprite del tuo giocatore cambia quando salti? Potrebbe dipendere da quello,se il collisore dello sprite in aria è anche di un pixel più corto,quando toccherà terra potrebbe compenetrarsi nel terreno di quel pixel e quindi rimanere bloccato.
Ora non so,non ho visto bene il codice che hai messo per il movimento,però se non dipende da quello potrebbe essere qualcosa con i collisori del giocatore.
Immagine
Spoiler
Immagine

Avatar utente
marcyblaze
Membro
Messaggi: 81
Iscritto il: 02/10/2014, 19:41
Specialità: Programmazione
Uso: GM:Studio 1.4 Pro
Località: sotto i ponti
Contatta:

Re: Salto infinito!

Messaggio da marcyblaze »

Simsure ha scritto:Lo sprite del tuo giocatore cambia quando salti? Potrebbe dipendere da quello,se il collisore dello sprite in aria è anche di un pixel più corto,quando toccherà terra potrebbe compenetrarsi nel terreno di quel pixel e quindi rimanere bloccato.
Ora non so,non ho visto bene il codice che hai messo per il movimento,però se non dipende da quello potrebbe essere qualcosa con i collisori del giocatore.
Giusto, probabilmente è quello.

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 42 ospiti