Pagina 1 di 1

Saltare e gravità

Inviato: 30/08/2010, 8:25
da Johnny 97
Vorrei far saltare il mio personaggio, ma non so come fare...
e dovrei anche impostare la gravità in modo che quando salta cade e quando tocca un oggetto solido si ferma la caduta e può continuare a camminare...

Re: Saltare e gravità

Inviato: 30/08/2010, 9:12
da cp94

Codice: Seleziona tutto

if !place_free(x,y+1)
{
vspeed=-9;
gravity=0.5
}
questo codice lo metti nell' evento keyboard press del tasto che vuoi usare per saltare :)
e nell' evento di collisione col pavimento devi aggiungere

Codice: Seleziona tutto

vspeed=0
gravity=0

Re: Saltare e gravità

Inviato: 30/08/2010, 10:01
da Feschio
oppure, in icone
Immagine e con questo impostti la gravita.
poi nell'evento di collisione con il pavimento metti Immagine
e clicki sulla freccina in giù e imposti come velocità 0
per saltare metti Immagine l'oggetto è il muro ed imposti per esempio se il tuo pg ha 32 di altezza imposti x+32 relativo
poi aggiungi di nuovo Immagine e clicki la freccina su con la speed che vuoi

Re: Saltare e gravità

Inviato: 30/08/2010, 10:07
da cp94
Feschioide ha scritto:oppure, in icone
Immagine e con questo impostti la gravita.
poi nell'evento di collisione con il pavimento metti Immagine
e clicki sulla freccina in giù e imposti come velocità 0
per saltare metti Immagine l'oggetto è il muro ed imposti per esempio se il tuo pg ha 32 di altezza imposti x+32 relativo
poi aggiungi di nuovo Immagine e clicki la freccina su con la speed che vuoi
:NO: non puoi fare un salto con Immagine
devi usare
Immagine var: vspeed; value: -9;
e per stoppare la stessa icona con var: vspeed; value: 0.
per controllare se esiste il pavimento, invece:
Immagine, va bene anche Immagine ma la prima funziona anche se sei su qualcosa d'altro che il pavimento, tipo una piattaforma.
ps: e poi è y+32, non x+32, e se scrivi x+ o y+ non serve relative perchè scrivendo y+ è gia un relative! ;)

Re: Saltare e gravità

Inviato: 30/08/2010, 16:31
da Johnny 97
ok, grazie cp94, credo che userò il tuo "script" :fapensare:

Re: Saltare e gravità

Inviato: 30/08/2010, 16:43
da Feschio
cp94 ha scritto:
Feschioide ha scritto:oppure, in icone
Immagine e con questo impostti la gravita.
poi nell'evento di collisione con il pavimento metti Immagine
e clicki sulla freccina in giù e imposti come velocità 0
per saltare metti Immagine l'oggetto è il muro ed imposti per esempio se il tuo pg ha 32 di altezza imposti x+32 relativo
poi aggiungi di nuovo Immagine e clicki la freccina su con la speed che vuoi
:NO: non puoi fare un salto con Immagine
devi usare
Immagine var: vspeed; value: -9;
e per stoppare la stessa icona con var: vspeed; value: 0.
per controllare se esiste il pavimento, invece:
Immagine, va bene anche Immagine ma la prima funziona anche se sei su qualcosa d'altro che il pavimento, tipo una piattaforma.
ps: e poi è y+32, non x+32, e se scrivi x+ o y+ non serve relative perchè scrivendo y+ è gia un relative! ;)
io il salto l'ho sempre fatto con l'icona, per l'altro problema così sarebbe possibile saltare anche su cose sulle quali forse non si dovrebbe saltare, per l'ultimo problema, colpa mia xD

Re: Saltare e gravità

Inviato: 30/08/2010, 17:02
da Stavros
Sti utenti nuovi, LEGGETE I TUTORIAL E SEGUITELI... Sti problemi non ci sarebbero

salto (keyboard UP)
Immagine 0, 1, relative
Immagine -6

gravità (step)
Immagine 0, 1, relative
Immagine 0.4
Immagine
Immagine 0

collisione con blocco (collision)
Immagine 0
Immagine direction, -1, only solid

Ti ho descritto con le icone come dovrebbe essere il tuo Personaggio: potresti aggiungere il controllo sulla velocità di caduta, onde evitare fastidiosi bug, il controllo sulle sprite per il salto...

Re: Saltare e gravità

Inviato: 26/01/2013, 19:24
da Fillibis
cp94 ha scritto:

Codice: Seleziona tutto

if !place_free(x,y+1)
{
vspeed=-9;
gravity=0.5
}
questo codice lo metti nell' evento keyboard press del tasto che vuoi usare per saltare :)
e nell' evento di collisione col pavimento devi aggiungere

Codice: Seleziona tutto

vspeed=0
gravity=0
Scusate se riprendo questo post vecchio ma volevo ringraziarti per il codice dato che mi è stato davvero utile :)
poi volevo chiederti: come faccio a potermi muovere mentre salto usando i codici?
grazie in anticipo ;)

Re: Saltare e gravità

Inviato: 27/01/2013, 9:39
da gameplay_extreme
per lo spostamento orizzontale (sia mentre stai saltando oppure no) io di solito faccio una cosa del genre:
in create:

Codice: Seleziona tutto

x_sp = 4
in step:

Codice: Seleziona tutto

if (keyboard_check(vk_right) && place_free(x+x_sp,y))
 {
  x += x_sp
 }
if (keyboard_check(vk_left) && place_free(x-x_sp,y))
 {
  x -= x_sp
 }
questo funziona se l'oggetto parete è solid

se non si vuole usare solid bisogna fare:

Codice: Seleziona tutto

if (keyboard_check(vk_right) && !place_meeting(x+x_sp,y,parete))
 {
  x += x_sp
 }
if (keyboard_check(vk_left) && !place_meeting(x-x_sp,y,parete))
 {
  x -= x_sp
 }
PS: si ricorda che quando c'è una collisione con un oggetto solid viene eseguito automaticamente:

Codice: Seleziona tutto

x = xprevious
y = yprevious
quindi se si è partiti con degli oggetti solidi e adesso si vuole togliere la solidità potrebbe essere necessario aggiungere quelle 2 istruzioni...

Re: Saltare e gravità

Inviato: 27/01/2013, 13:10
da Fillibis
Grazie mille :D

Re: Saltare e gravità

Inviato: 27/01/2013, 13:17
da Fillibis
gameplay_extreme ha scritto:per lo spostamento orizzontale (sia mentre stai saltando oppure no) io di solito faccio una cosa del genre:
in create:

Codice: Seleziona tutto

x_sp = 4
in step:

Codice: Seleziona tutto

if (keyboard_check(vk_right) && place_free(x+x_sp,y))
 {
  x += x_sp
 }
if (keyboard_check(vk_left) && place_free(x-x_sp,y))
 {
  x -= x_sp
 }
questo funziona se l'oggetto parete è solid

se non si vuole usare solid bisogna fare:

Codice: Seleziona tutto

if (keyboard_check(vk_right) && !place_meeting(x+x_sp,y,parete))
 {
  x += x_sp
 }
if (keyboard_check(vk_left) && !place_meeting(x-x_sp,y,parete))
 {
  x -= x_sp
 }
PS: si ricorda che quando c'è una collisione con un oggetto solid viene eseguito automaticamente:

Codice: Seleziona tutto

x = xprevious
y = yprevious
quindi se si è partiti con degli oggetti solidi e adesso si vuole togliere la solidità potrebbe essere necessario aggiungere quelle 2 istruzioni...
Ho un problema,quando salto e atterro su un oggetto che si trova più in alto dell'oggetto da cui ho iniziato il salto,l'oggetto che dovrebbe saltare mi si blocca in aria :( come posso fare? se mi sono spiegato male posso inviarti anche uno screen.

Re: Saltare e gravità

Inviato: 27/01/2013, 13:21
da gameplay_extreme
cosi su 2 piedi non mi dice niente...
posta uno screen e un show information degli oggetti coinvolti...

Re: Saltare e gravità

Inviato: 27/01/2013, 13:31
da Fillibis
Spoiler
Immagine
codice del tasto up:

Codice: Seleziona tutto

if !place_free(x,y+1)
{
vspeed=-9;
gravity=0.5
}
codice collision with:

Codice: Seleziona tutto

vspeed=0
gravity=0
step e create ho messo uguale ai tuoi

Re: Saltare e gravità

Inviato: 27/01/2013, 13:43
da gameplay_extreme
dunque suppongo, dal difetto che mi dici, che le pareti siano "solid"

aggiungi in prima riga, in collision con parete

Codice: Seleziona tutto

move_contact_solid(direction,-1)
(se per lo spostamento orizzonatale utilizzi il mio metodo, quello con x += x_sp ecc.)

(se invece per il movimento orizzontale utilizzi hspeed)
aggiungi in prima riga, in collision con parete

Codice: Seleziona tutto

if (vspeed > 0)
 {
   move_contact_solid(270,-1)
 }

Re: Saltare e gravità

Inviato: 27/01/2013, 13:49
da Fillibis
ok grazie ora funziona,e dato che mi sono stancato di dover chiedere ogni volta chiarimenti sui codici, sai se esiste una guida che spiega il linguaggio dei codici e altre cose?
perché per ora conosco solo alcune basi e mi piacerebbe imparare:)

Re: Saltare e gravità

Inviato: 27/01/2013, 14:02
da Fillibis
ho riscontrato un altro problema,ecco cosa succede:
Spoiler
Immagine
riesco a saltare sull'oggetto ma se dopo mi muovo orizzontalmente l'oggetto vola

Re: Saltare e gravità

Inviato: 27/01/2013, 14:03
da Fillibis
Xeryan ha scritto:
Fillibis ha scritto:ok grazie ora funziona,e dato che mi sono stancato di dover chiedere ogni volta chiarimenti sui codici, sai se esiste una guida che spiega il linguaggio dei codici e altre cose?
perché per ora conosco solo alcune basi e mi piacerebbe imparare:)
Santo Manuale (F1 in gamemaker)
grazie :)

Re: Saltare e gravità

Inviato: 27/01/2013, 14:11
da gameplay_extreme
io risolverei così:
devi controllare continuamente sotto di te: se c'è il pavimento la gravità deve essere 0 se non c'è la gravità deve attivarsi (di solito io metto 0.5)

lascia perdere la gestione della gravita che avevi messo prima (= cancella o commenta le istruzioni che compongono la gestione della gravita che avevi precedentemente messo)

poi step del pg inserisci:

Codice: Seleziona tutto

if place_free(x,y+1)
 {
   gravity = 0.5
 }
else
 {
  gravity = 0
 }

Re: Saltare e gravità

Inviato: 27/01/2013, 14:53
da Fillibis
grazie ora funziona :)