About
Documenti
Game
Staff
Contact




Saint Saga
VGMaker Italia
Game Maker Resorces
TMW Team
Fantasy Community
Rmk2 World Making
Asgard Project
Mugeneration
DragonMugen

 

Capitolo 11.1: Azioni di movimento

Il primo gruppo di azioni è formato da quelle legate al movimento degli oggetti. Si tratta delle azioni seguenti:

 

Start moving in a direction
Usa questa azione per far muovere l’instance in una particolare direzione, indicando la direzione usando le frecce. Usa il pulsante centrale per interrompere il moto. Devi anche specificare la velocità del moto, velocità data in pixel per passo: il valore di default è 8, se è possibile non usare velocità negative. Puoi specificare più di una direzione: in questo caso viene effettuata una scelta casuale. In questo modo puoi ad esempio far muovere un mostro a destra o a sinistra.

Set direction and speed of motion
Questo è il secondo modo di specificare un moto, quello con le frecce blu. Qui puoi indicare una direzione precisa. Essa consiste in un angolo compreso tra 0 e 360 gradi. 0 significa a destra. Il senso è antiorario. Quindi ad esempio 90 indica in alto. Se vuoi una direzione casuale, puoi scrivere random (360). Come vedrai sotto, la funzione random restituisce un numero casuale minore del valore indicato. Come forse avrai notato, c’è una casella chiamata Relative. Se la selezioni, il nuovo moto verrà aggiunto al precedente. Per esempio, se l’instance si sta muovendo verso l’alto e aggiungi un po’ di moto verso sinistra, il nuovo moto sarà verso l’alto e verso sinistra.

Set the horizontal speed
La velocità di un’instance è composta da una componente orizzontale e una verticale, con questa azione puoi cambiare la velocità orizzontale. Una velocità orizzontale positiva implica un movimento verso destra, una negativa implica un moto verso sinistra, la velocità verticale resta immutata. Usa la casella Relative per aumentare la velocità orizzontale (o diminuirla fornendo un valore negativo).

Set the vertical speed
Allo stesso modo, con questa azione puoi modificare la velocità orizzontale dell’instance.

Move towards a point
Questa azione ti fornisce un altro modo per settare un moto. Puoi indicare una posizione e una velocità e l’instance inizierà a muoversi con la velocità indicata verso la posizione. (Non si fermerà una volta arrivato!). Ad esempio, se vuoi far volare un proiettile verso la posizione di un’astronave puoi usare come posizione spaceship.x, spaceship.y. (Imparerai qualcosa in più sull’uso di variabili come queste in seguito). Se selezioni la casella Relative, la posizione è intesa relativamente alla posizione corrente dell’instance. (La velocità non è relativa!)

Set the gravity
Con questa azione puoi creare una gravità per l’oggetto. Puoi specificare una direzione (un angolo tra 0 e 360 gradi) ed una velocità, che ad ogni passo questa velocità nella direzione data viene aggiunta al moto corrente dell’instance dell’oggetto. Di solito ti serve un incremento molto piccolo (come 0.01). In genere vorrai settare la direzione verso il basso (270 gradi). Se selezioni la casella Relative, aumenti la velocità e la direzione della gravità. Nota che, contrariamente alla realtà, oggetti diversi possono avere direzioni di gravità diverse.

Set the friction
L’attrito rallenta le instance quando sono in movimento. Puoi specificare l’ammontare dell’attrito, ad ogni passo questa quantità viene sottratta alla velocità finché essa si azzera. Di solito hai bisogno di un numero molto piccolo (come 0.01).

  Jump to a given position
Usando questa azione puoi posizionare l’instance in una posizione particolare. Specifica semplicemente le coordinate x e y, e l’instance viene posizionata con la sua origine in quel punto. Se selezioni la casella Relative, la posizione è intesa relativamente a quella corrente dell’instance.

Jump to the start position
Questa azione riporta l’instance alla posizione in cui è stata creata

Jump to a random position
Questa azione sposta l’instance in una posizione casuale nella stanza: vengono scelte solo posizioni in cui l’instance non interseca nessuna instance solida. Puoi specificare la griglia utilizzata. Se immetti valori positivi, le coordinate saranno scelte tra i multipli interi dei valori indicati, ciò può essere utilizzato, ad es., per mantenere l’instance allineata con le caselle del tuo gioco (se ce ne sono). Puoi specificare griglie orizzontali e verticali separate.

Reverse horizontal direction
Con questa azione inverti il moto orizzontale dell’instance, si può usare ad esempio quando l’oggetto urta un muro verticale.

Reverse vertical direction
Con questa azione inverti il moto verticale dell’instance, si può usare ad esempio quando l’oggetto urta un muro orizzontale.

Bounce against objects
Quando metti questa azione nel collision event relativo a qualche oggetto, l’instance rimbalza su questo oggetto in maniera naturale. Se imposti il parametro “precise” su “false”, vengono trattati correttamente solo i muri orizzontali e verticali. Quando lo imposti su “true” vengono trattati in maniera soddisfacente anche i muri inclinati (o curvi), questa opzione è però più lenta. Puoi anche indicare se effettuare il rimbalzo solo su oggetti solidi o su tutti gli oggetti. Bisogna capire che il rimbalzo non è del tutto corretto poiché dipende da molti fattori. Ma in molte situazioni l’effetto è abbastanza buono.

Snap to grid
Con questa azione puoi arrotondare la posizione dell’instance ad una griglia. Puoi indicare sia il valore orizzontale che quello verticale della griglia (cioè, la dimensione delle caselle della griglia). Ciò può essere molto utile per essere sicuri che l’instance stia in una griglia.

Set a path for the instance
Con questa azione puoi indicare che l’instance deve seguire un particolare percorso: puoi indicare il percorso, la velocità e la posizione nel percorso dalla quale partire (0=inizio, 1=fine). Vedi il Capitolo 18 per ulteriori informazioni sui percorsi.

By Mark Overmars

Capitolo 11.2