La grafica

 

Home
Su
I videogiochi
Documentazione

Molto importante per un gioco è la grafica.

In Div2 ogni singola animazione è un'immagine che deve essere gestita dal programmatore. Siccome le animazioni possono essere molto numerose è possibile salvarle in un unico file di estensione .fpg dove a ogni immagine corrisponderà un numero.

Il file viene caricato nella RAM con la funzione

Load_fpg("nomefile.fpg")

e associato al processo che utilizzerà le animazioni contenute con la variabile locale file.

Alla fine del suo uso si scarica dalla memoria con la funzione

Unload_fpg(numerofpg).

Ecco un esempio:

Process Animazione();
Begin
    File=Load_Fpg("nomefile.fpg");
    linee di programma
    ...
    Unload_Fpg(File);
End.

Ogni processo ha la sua variabile locale

Graph

dove si immette il numero dell'immagine da visualizzare a video.

Se nel file .fpg le immagini di un'animazione sono messe in successione si potrà creare l'animazione semplicemente incrementando la variabile Graph. 

Ecco un esempio:

Process Animazione();
Begin
    File=Load_Fpg("nomefile.fpg");
    Graph=1;
    Repeat
            Graph++;
            Frame;
    Until (Graph==6);
    Unload_Fpg(File);
End.

Immagini:

Risultato:

La funzione

Frame

permette al sistema di passare da un processo all'altro e di fare un refresh video di tutte le immagini presenti.

Per poter spostare un'immagine sul video esistono le due variabili locali x e y che si riferiscono alle coordinate corrispondondenti in pixel alla larghezza e all'altezza della risoluzione video adottata (640x480, 800x600, ecc...)

Alcune immagini statiche, come gli sfondi, non hanno bisogno di essere caricate nei processi. Per queste esistono le funzioni

Put_Screen(NomeFile, Numero immagine)
Put(NomeFile, Numero immagine, x, y)

che permettono di posizionare un'immagine sullo sfondo dello schermo rispettivamente centrata e in una determinata posizione.

Mentre le precedenti animazioni vengono eliminate quando finisce il processo, queste rimangono sempre finché non si usa la funzione

Clear_Screen().
 

 
 

Anno scolastico 2000/2001
Davide Scot - 5Bi