AGS – Parte 3 – guis, views, characters

GUIs





Cos’e’ una GUI?
La GUI e’ una finestra grafica che puo’ conterener immmagini, testo o bottoni

Sono GUI le finestre del menu, del salvataggio, del caricamento, l’inventario ma anche elementi come puzzle

Le GUI sono un elemento fondamentale

Di base ogni gioco di AGS ha una GUI di salvataggio ,di caricamento ,di restart e di uscita qualsiasi sia il template che abbiamo usato, solo che queste GUI fisse sono richiamabili con tasti gia’ predeterminati (F4, F5, F6, F7) e non possono essere cambiate graficamente e appaiono molto essenziali

Ma possiamo pero’ aggiungere a queste GUI di default le nostre, consiglio di iniziare sempre il progetto usando il TEMPLATE DEMO GAME perche’ contiene tutto quello che ci occorre gia’ programmato, possiamo infatti modificare tutta la grafica a nostro piacimento

programmare GUI semplici non e’ difficile anzi… i comandi sono molto intuitivi

le GUI vengono richiamate nel gioco in diversi modi

Nella tabella generica della GUI c’e’ l’opzione “Visibility”

dove possiamo decidere se e’ una GUI “popup” che appare quando il mouse si muove in una certa coordinata, una GUI sempre visibile, o una GUI che parte spenga e che appare quindi quando viene chiamata

per far apparire una GUI il comando e’ il seguente

"script name della GUI".Visible = true;

se vogliamo farla sparire

"script name della GUI".Visible = false;

Lo script name sara’ motlo importante nella programmazione cercate sempre di dare nomi semplici e diversi, infatti AGS di base mette davanti agli script name una lettera per identificarne la categoria per le GUI “g” ovviamente questo non e’ obbligatorio

per una GUI come l’inventario uno scriptname adatto potrebbe essere gINV

a livello di programmazione pero’ consiglio di non toccare niente del template se non sapete come muovervi ma potete trasformare le finsetre a vostro piacimento, ad esempio se invece di un inventario in stile Sierra vogliamo un inventario come quello di Beneath a Steel Sky

Dobbiamo dare al quadrato contornato di bianco (l’inventory underlay, lo spazio che determina lo spazio dell’inventario dedicato agli oggetti), cambiare la Visibility in “Always Visible” e spostarlo in cima allo schermo mettendo il parametro “top” che determina la distanza dal bordo superiore dello schermo sullo 0

Oppure per trasformare il TEMPLATE di base in uno SCUMM alla Monkey Island basta spostare e rimodellare la icon bar e l’inventario rendendoli sempre visibili e spostandoli in basso allo schermo aumentando il parametro “Top”

In una GUI, che possiamo creare cliccando col destro sulla voce GUI del menu, possiamo aggiungere questi elementi: Bottoni, Etichette (label), Testo, Lista, Indicatore e Spazio dell’inventario

I bottoni sono elementi grafici a cui possiamo assegnare il frame che vogliamo come aspetto o lasciarli semplici elementi geometrici con un titolo scritto sopra, a cui possiamo dare un’immagine quando sono normali, quando il mouse e’ su di essi e quando sono cliccati.

Attraverso il clic sul bottone possiamo chiamare il comando che preferiamo
Per impostare l’interazione di un bottone dobbiamo sulla sua tabella in basso a lato scegliere l’opzione a forma di fulmine “Events”, cliccare sul bottone …. dopo OnClick e verremo trasportati finalmente nel GlobalScript; il mega blocco dove verra’ scritta la struttura del nostor gioco.

Verra’ automaticamente compilata cosi’ uno schema del genere

function Button11_OnClick(GUIControl *control, MouseButton button)
{

}

in cui nelle parentesi graffe inseriremo l’effetto dle bottone
ad esempio se il bottone e’ quello che deve chiudere la GUI

gINV.Visible = false;

ricordatevi che dopo ogni comando va’ il punto e virgola altrimenti AGS vi segnalera’ l’errore
di punteggiatura mancante (il punto e virgola delimita la fine di un comando e l’inizio di un altro)

MOLTO IMPORTANTE


Per sapere come scrivere correttamente e conoscere tutti i comandi disponibili usate il Dynamic Help, lo trovate sul tasto Help in alto.
Il Dynamic Help e’ una vasta libreria in cui potete cercare quello che vi serve un po’ alla cieca.
Piu’ avanti comunque elenchero’ gli script piu’ comuni

piu’ avanti quando avro’ spiegato le stanze e i personaggi vi faro’ un esempio pratico di gui di menu’ iniziale.


se avete domande su come modificare o creare le GUI chiedete pure

VIEWS




Le views sono cio’ che anima i vari personaggi e in alcuni casi anche gli oggetti o i cursori

Cliccando col destro su “Views” possiamo creare nuove view o nuove cartelle per ordinarle

Creando una view e’ consigliabile dargli un nome per trovarla meglio in seguito

Le view funzonano in questo modo, devono avere per forza almeno un frame, cliccando sul quadrato rosa si aprira’ il menu’ delle sprites dove possiamo scegliere quella che ci serve o importarla sul momento

dopodiche’ cliccando sul pulsante Create New Frame possiamo aggiungere nuovi frame alla view per animarla e vedere l’anteprima spuntando la casella Show Preview e successivamente la casella Animate.

Di base la prima riga di view rappresenterebbe nel caso sia una vies di movimento il basso (down)

Cliccando su Create New Loop apparira’ la riga dell’animazone verso l’alto, poi destra, sinistra e le diagonali

Ma se teniamo un solo loop ovvero (down) senza creare gli altri il gioco usera’ quello per tutte le direzioni, e se e’ composto da un frame il personaggio avra’ quell’aspetto e nessuna animazione

Per ralentare la view possiamo modificare il suo valore di delay DLY sotto ogni frame, piu’ si allontana da 0 e piu’ sara’ lenta

inoltre si puo’ assegnnare ad ogni frame un suono (ad esempio una view che rappresenta il protagonista mentre nuota avra’ dei suoni di bracciate nel movimento) attraverso la tabella in basso di lato

per non dover importare immagini rivolte sia a destra che a sinistra basta girarle col comando FLIP, cliccando su un frame col destro possiamo flipparlo verso il verso opposto

per le view di movimento la direzione del loop indica l’animazione nella specifica direzione mentre per le animazioni di personaggi che parlano indicano nel caso del protagonista la direzione verso cui parla, per i personaggi secondari la direzione in cui e’ il protagonista.

Se un personaggio secondario ha una Talk View rivolta solo verso sinistra guardera’ a sinistra mentre parla anche se il protagonista e’ a destra

CHARACTERS

Impostare i characters e’ molto semplice

I personaggi si creano cliccnado col destro su Characters

Queste sono le loro impostazioni

Speech Color: qui’ va inserito il numero del colore che vogliamo abbiano le frasi pronunciate da lui nel caso abbiamo scelto il LucasStyle Speech (quello Sierra sara’ sempre nero)

La speech view: il numero della view che vogliamo abbia questo personaggio quando parla

Thinking View: la thinking view e’ quella di quando il personaggio invece che parlare pensera’ qualcosa (tipo Larry in Love For Sail)

UseRoomAreaLighting: se il personaggio viene colpito sagli speciali effetti di luce della stanza

UseRoomAreaScaling: se il personaggio viene ridimensionato a seconda delle impostazioni dell stanza

Clickable: se cliccandoci interagiamo su di esso

RealName: il nome che appare quando gli passiamo sopra col mouse

Scriptname: il nome con cui lo richiamiamo durante la programmazione

Starting Room: la stanza dove inizia ( nel caso sia il protagonista la stanza dove inizia il gioco, se il personaggio momentaneamente non dev’essere in nessuna stanza usiamo la nummero 0)

StartX: coordinata X di dove inizia

StartY: coordinata Y di dove inizia

Adjust speed with scaling; a seconda dle ridimensionamento della stanza varia anche la velocita’

Animation Delay: pausa tra un’animazione e un’altra

Diagonal Loops: se puo’ muoversi in diagonale

MovedLinkedToAnimating: rende piu’ fluida l’animazione facendo in modo che ogni passo sia sincronizzato a un frame

Movement Speed: velocita’ della camminata

Solid: se crea una zona sensibile al mouse

TurnBeforeWalking: si gira nella direzione in cui va’

UniformMovement Speed: si muove alla stessa velocita’ sia in orrizzontale che verticale

Poi cliccando sul FULMINE “Events” ci sono le interazioni proprio come i bottoni delle GUI ma con piu’ opzioni, una per ogni pointermode

attraverso queste interazioni programmeremo cosa succede se parliamo, usiamo un oggetto, guardiamo il determinato personaggio

Si ringrazia WarioPunk del forum di Arena80 per la guida.

Riguardo a Protagora

Vedi Anche

AGS – Parte 2 – colours, sprites, fonts

Seconda parte della nostra guida su AGS, su colours, sprites e fonts.