Pagina 1 di 1

Perché questo code funziona?

Inviato: 30/09/2015, 21:05
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;
}

Re: Perché questo code funziona?

Inviato: 30/09/2015, 21:07
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.

Re: Perché questo code funziona?

Inviato: 01/10/2015, 11:30
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)

Re: Perché questo code funziona?

Inviato: 01/10/2015, 21:24
da Kami_Ender
Grazie ragazzi :cappa: