Perché questo code funziona?

Hai una curiosità o un problema con Game Maker? Domanda e ti sarà risposto!
Rispondi
Kami_Ender
Membro
Messaggi: 62
Iscritto il: 08/06/2015, 12:18

Perché questo code funziona?

Messaggio da Kami_Ender »

Ciao ragazzi, molti di voi riconosceranno un YTer in questo pezzo di code, ma potete aiutarmi a capire come lavora? E perché lavora anche senza variabili auto-implementate(es. hsp = hspeed)? La parte successiva della collisione l'ho capita ma questo proprio no xD

Codice: Seleziona tutto

//Get the player's input
key_right = keyboard_check(vk_right);
key_left = -keyboard_check(vk_left);
key_jump = keyboard_check_pressed(vk_space);

//React to inputs
move = key_left + key_right;
hsp = move * movespeed;
if (vsp < 10) vsp += grav;

if (place_meeting(x,y+1,obj_wall))
{
     vsp = key_jump * -jumpspeed;
}

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: Perché questo code funziona?

Messaggio da Wolfrost »

Se ascolti bene il video (penso che tu stia parlando di Shaun Spalding), lui utilizza variabili create ad hoc per evitare di "dipendere" da variabili built-in di Game Maker. Anche io personalmente adoro evitare le variabili built-in tipo hspeed e vspeed, gravity e compagnia bella, proprio per avere un maggiore controllo su come il codice funziona.
E' ovvio che poi bisognerebbe applicare modifiche alla x e alla y in base alle variabili personali.
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: Perché questo code funziona?

Messaggio da pacmino »

immagino tu ti riferisca a questo http://gamemakertutorials.com/?p=383

cosa non hai capito? perchè funziona questo?

Codice: Seleziona tutto

key_right = keyboard_check(vk_right);
key_left = -keyboard_check(vk_left);
keyboard_check imposta la variabile a 1 o a 0, nel caso di key_left lui mette un meno davanti a keyboard_check quindi nel caso in cui si prema la freccia key_left diventerà -1

Codice: Seleziona tutto

move = key_left + key_right;
perciò diventa 0+1 oppure -1+0 o 0+0 (nel caso in cui non si prema nessuna delle due)
Immagine

Kami_Ender
Membro
Messaggi: 62
Iscritto il: 08/06/2015, 12:18

Re: Perché questo code funziona?

Messaggio da Kami_Ender »

Grazie ragazzi :cappa:

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 48 ospiti