Very Simple Graphic Library
 Tutto Classi File Funzioni Variabili Pagine
Funzioni | Variabili
Riferimenti per il file vsgl.h

Very Simple Graphic Library. Continua...

#include <vector>
#include <SDL/SDL_mixer.h>
#include "version.h"
#include "quickcg.h"
#include "vsgl_types.h"
#include "oggettografico.h"
#include "rettangolo.h"
#include "cerchio.h"
#include "linea.h"
#include "sprite.h"
#include "disco.h"

Vai al codice sorgente di questo file.

Funzioni

void inizializza_grafica (int larghezza, int altezza, int fullscreen, const char *titolo)
 Funzione che inizializza la grafica e deve essere chiamata prima di ogni altra. Continua...
 
void disegna_punto (int x, int y, const Colore &c)
 Disegna un punto a video di un colore scelto. Continua...
 
Colore crea_colore (int r, int g, int b)
 Permette di generare un colore date le sue componenti rosso, verde e blu. Continua...
 
void scrivi (int x, int y, const char *s, const Colore &c=BIANCO)
 Permette di mostrare una scritta a video. Continua...
 
void aggiorna_schermo ()
 Aggiorna quello che viene mostrato a schermo. Continua...
 
void pausa ()
 Mette in pausa il programma, attendendo la pressione di un tasto. Continua...
 
void pulisci_schermo (const Colore &c=NESSUN_COLORE)
 Pulisce lo schermo, colorandolo di un solo colore. Continua...
 
void imposta_colore_sfondo (const Colore &c=NERO)
 Imposta il colore di sfondo. Continua...
 
int crea_rettangolo (int x, int y, int larghezza, int altezza, const Colore &c=BIANCO)
 Crea un oggetto grafico di tipo rettangolo, con base e altezza paralleli agli assi, con l'angolo in alto a sinistra in posizione (x,y) e di colore specificato. Ritorna un indice che può essere poi utilizzato per effettuare delle operazioni sull'oggetto. Continua...
 
int crea_cerchio (int x, int y, int r, const Colore &c=BIANCO)
 Crea un oggetto grafico di tipo cerchio, con il centro in posizione (x,y) e di colore specificato. Ritorna un indice che può essere poi utilizzato per effettuare delle operazioni sull'oggetto. Continua...
 
int crea_disco (int x, int y, int r, const Colore &c=BIANCO)
 Uguale a crea_cerchio, solo che in questo caso il cerchio ha lo sfondo di colore c (disegna insomma un cerchio pieno). Ritorna un indice che può essere poi utilizzato per effettuare delle operazioni sull'oggetto. Continua...
 
int crea_linea (int x1, int y1, int x2, int y2, const Colore &c=BIANCO)
 Crea un oggetto grafico di tipo linea, con un estremo in posizione x1,y1 e l'altro in posizione x2,y2. Continua...
 
int crea_sprite (int x, int y, const string &filename)
 Crea un oggetto grafico di tipo sprite, cioè immagine in posizione x,y. Continua...
 
void disegna_oggetto (int indice_oggetto)
 Disegna a video un oggetto di cui viene passato l'indice come parametro. Continua...
 
void disegna_oggetti ()
 Disegna a video tutti gli oggetti creati. Continua...
 
void muovi_oggetto (int x, int y, int indice_oggetto)
 Muove un oggetto sullo schermo. Continua...
 
void cambia_colore_oggetto (int indice_oggetto, Colore c)
 Cambia il colore di un oggetto. Continua...
 
void ritardo (int millisecondi)
 Mette in pausa il programma per un certo tempo. Continua...
 
void leggi_mouse ()
 Legge lo stato del mouse e lo memorizza nelle variabili mouseX, mouseY, mouseTD, mouseTS. Continua...
 
int fatto ()
 Diventa vera quando viene premuto il tasto ESC o la x gi chiusura della finsetra, falsa altrimenti. Continua...
 
void leggi_stringa (char *input, const char *messaggio, int cancella, int x, int y, const Colore &c=NERO)
 Aspetta che l'utente inserisca una stringa da tastiera, ha un comportamento simile alla gets. Continua...
 
void inizializza_audio ()
 Inizializza la sezione audio. Continua...
 
void carica_musica (const char *nomefile)
 Carica il file da suonare. Continua...
 
void suona_musica ()
 Manda il esecuzione il file caricato con carica_musica. Continua...
 
void ferma_musica ()
 Ferma l'esecuzione del file caricato con carica_musica. Continua...
 
int carica_effetto (const char *nomefile)
 Carica il file dell'effetto. Continua...
 
void suona_effetto (int effetto)
 Manda il esecuzione l'effetto individuato dal parametro. Continua...
 
void leggi_tastiera ()
 Legge lo stato della tastiera e deve essere chiamata prima di usare le funzioni che leggono i tasti. Continua...
 
bool tasto_premuto (int tasto)
 Verifica se un pulsante è stato premuto o no nel momento in cui è chiamata, ma solo la prima sostanzialmente serve per verificare se il tasto è stato premuto, non lo stato che ha in questo momento, se interessa sarebbe lo stato attuale del tasto bisogna usare tasto_giu. Continua...
 
bool tasto_giu (int tasto)
 Verifica lo stato del pulsante tasto nel momento in cui è chiamata, ritornando true se è premuto o false altrimenti. Offre una modalità di lettura dei tasti complementare a quella di tasto_premuto, va usata l'una o l'altra a seconda delle esigenze del programma. Continua...
 
void versione (char *s)
 Copia in s il valore corrente di versione della libreria. Continua...
 
unsigned long millisecondi ()
 Ritorna la quantità di millisecondi che sono passati da quando è stato avviato il programma. Continua...
 
void salva_screenshot (const char *nomefile)
 Salva la schermata corrente su file in formato bitmap. Continua...
 

Variabili

int mouseX
 Variabile globale che contiene le coordinate X del mouse.
 
int mouseY
 Variabile globale che contiene le coordinate Y del mouse.
 
bool mouseTD
 Variabile globale che contiene lo stato del bottone destro del mouse (1 premuto, 0 no)
 
bool mouseTS
 Variabile globale che contiene lo stato del bottone sinistro del mouse (1 premuto, 0 no)
 

Descrizione dettagliata

Very Simple Graphic Library.

Autore
Alessandro Bugatti
Versione
0.1
Data
Creazione 30/11/2011
Ultima modifica 17/05/2012

Documentazione delle funzioni

void aggiorna_schermo ( )

Aggiorna quello che viene mostrato a schermo.

Osservazioni
Deve essere chiamata ogni volta che si vuole aggiornare quello che viene mostrato a video, se non viene chiamata tutte le istruzioni di disegno non hanno effetto.
void cambia_colore_oggetto ( int  indice_oggetto,
Colore  c 
)

Cambia il colore di un oggetto.

Parametri
indice_oggettoL'indice (un numero intero positivo) che viene ottenuto dalla funzione crea_oggetto
Avvertimento
Se l'indice passato non è un indice valido, la funzione non fa nulla
int carica_effetto ( const char *  nomefile)

Carica il file dell'effetto.

Parametri
nomefileIl nome del file da suonare
Restituisce
Un numero identificativo dell'effetto caricato, -1 se non viene caricato
Da fare:
Da fare meglio
void carica_musica ( const char *  nomefile)

Carica il file da suonare.

Parametri
nomefileIl nome del file da suonare
Da fare:
Da fare meglio
int crea_cerchio ( int  x,
int  y,
int  r,
const Colore c = BIANCO 
)

Crea un oggetto grafico di tipo cerchio, con il centro in posizione (x,y) e di colore specificato. Ritorna un indice che può essere poi utilizzato per effettuare delle operazioni sull'oggetto.

Parametri
xCoordinata x del centro
yCoordinata y del centro
rRaggio del cerchio
cColore del cerchio, se non specificato è bianco
Restituisce
Un indice che rappresenta l'oggetto e che deve essere utilizzato quando si vogliono fare delle operazioni su di esso
Osservazioni
Il cerchio viene solo creato, non disegnato a video: per disegnarlo é necessario usare la funzione disegna_oggetto, passando l'indice dell'oggetto ottenuto da questa funzione
Colore crea_colore ( int  r,
int  g,
int  b 
)

Permette di generare un colore date le sue componenti rosso, verde e blu.

Parametri
rComponente rossa, deve essere compresa tra 0 e 255
gComponente verde, deve essere compresa tra 0 e 255
bComponente blu, deve essere compresa tra 0 e 255
Restituisce
Il colore creato, che può essere usato in tutte le funzioni che richiedono un colore.
int crea_disco ( int  x,
int  y,
int  r,
const Colore c = BIANCO 
)

Uguale a crea_cerchio, solo che in questo caso il cerchio ha lo sfondo di colore c (disegna insomma un cerchio pieno). Ritorna un indice che può essere poi utilizzato per effettuare delle operazioni sull'oggetto.

Parametri
xCoordinata x del centro
yCoordinata y del centro
rRaggio del disco
cColore del disco, se non specificato è bianco
Restituisce
Un indice che rappresenta l'oggetto e che deve essere utilizzato quando si vogliono fare delle operazioni su di esso
Osservazioni
Il disco viene solo creato, non disegnato a video: per disegnarlo é necessario usare la funzione disegna_oggetto, passando l'indice dell'oggetto ottenuto da questa funzione
int crea_linea ( int  x1,
int  y1,
int  x2,
int  y2,
const Colore c = BIANCO 
)

Crea un oggetto grafico di tipo linea, con un estremo in posizione x1,y1 e l'altro in posizione x2,y2.

Parametri
x1Coordinata x del primo estremo
y1Coordinata y del primo estremo
x2Coordinata x del secondo estremo
y2Coordinata y del secondo estremo
cColore della linea
Restituisce
Un indice che rappresenta l'oggetto e che deve essere utilizzato quando si vogliono fare delle operazioni su di esso
Osservazioni
La linea viene solo creata, non disegnata a video: per disegnarla é necessario usare la funzione disegna_oggetto, passando l'indice dell'oggetto ottenuto da questa funzione
int crea_rettangolo ( int  x,
int  y,
int  larghezza,
int  altezza,
const Colore c = BIANCO 
)

Crea un oggetto grafico di tipo rettangolo, con base e altezza paralleli agli assi, con l'angolo in alto a sinistra in posizione (x,y) e di colore specificato. Ritorna un indice che può essere poi utilizzato per effettuare delle operazioni sull'oggetto.

Parametri
xCoordinata x dell'angolo in alto a sinistra
yCoordinata y dell'angolo in alto a sinistra
larghezzaLarghezza del rettangolo
altezzaAltezza del rettangolo
cColore del rettangolo, se non specificato è bianco
Restituisce
Un indice che rappresenta l'oggetto e che deve essere utilizzato quando si vogliono fare delle operazioni su di esso
Osservazioni
Il rettangolo viene solo creato, non disegnato a video: per disegnarlo é necessario usare la funzione disegna_oggetto, passando l'indice dell'oggetto ottenuto da questa funzione
int crea_sprite ( int  x,
int  y,
const string &  filename 
)

Crea un oggetto grafico di tipo sprite, cioè immagine in posizione x,y.

Parametri
xCoordinata x dell'angolo in alto a sinistra
yCoordinata y del'angolo in alto a sinistra
filenameNome del file che si vuole caricare
Restituisce
Un indice che rappresenta l'oggetto e che deve essere utilizzato quando si vogliono fare delle operazioni su di esso
Osservazioni
L'immagine viene solo creata, non disegnata a video: per disegnarla é necessario usare la funzione disegna_oggetto, passando l'indice dell'oggetto ottenuto da questa funzione
L'immagine può solo essere in formato PNG
void disegna_oggetti ( )

Disegna a video tutti gli oggetti creati.

Osservazioni
La funzione è in grado di disegnare qualsiasi tipo di oggetto grafico. Per vedere gli effetti della funzione è comunque necessario chiamare la funzione di aggiornamento dello schermo
void disegna_oggetto ( int  indice_oggetto)

Disegna a video un oggetto di cui viene passato l'indice come parametro.

Parametri
indice_oggettoL'indice (un numero intero positivo) che viene ottenuto dalla funzione crea_oggetto
Avvertimento
Se l'indice passato non è un indice valido, la funzione non fa nulla
Osservazioni
La funzione è in grado di disegnare qualsiasi tipo di oggetto grafico. Per vedere gli effetti della funzione è comunque necessario chiamare la funzione di aggiornamento dello schermo
void disegna_punto ( int  x,
int  y,
const Colore c 
)

Disegna un punto a video di un colore scelto.

Parametri
xCoordinata x del punto
yCoordinata y del punto
cColore del punto
int fatto ( )

Diventa vera quando viene premuto il tasto ESC o la x gi chiusura della finsetra, falsa altrimenti.

Osservazioni
Viene usata come condizione d'uscita nel main loop, per terminare il programma quando l'utente preme il tasto ESC
Restituisce
1 se viene premuto ESC o la X di chiusura della finestra, 0 altrimenti
void ferma_musica ( )

Ferma l'esecuzione del file caricato con carica_musica.

Da fare:
Da fare meglio
void imposta_colore_sfondo ( const Colore c = NERO)

Imposta il colore di sfondo.

Osservazioni
Se non viene specificato il colore, lo sfondo viene riportato al valore di default che è nero
Avvertimento
Per ottenere il ridisegno bisogna chiamare pulisci_schermo, questa funzione imposta solo il colore ma non disegna
void inizializza_audio ( )

Inizializza la sezione audio.

Da fare:
Da fare meglio, attualmente apre l'audio a 44100 Hz, due canali 16 bit per campione

Inizializza la sezione audio.

void inizializza_grafica ( int  larghezza,
int  altezza,
int  fullscreen,
const char *  titolo 
)

Funzione che inizializza la grafica e deve essere chiamata prima di ogni altra.

Parametri
larghezzaLa larghezza logica dello schermo in cui disegnare. Se l'applicazione non è in fullscreen corrisponde al numero di pixel della larghezza della finestra
altezzaL'altezza logica dello schermo in cui disegnare. Se l'applicazione non è in fullscreen corrisponde al numero di pixel dell'altezza della finestra.
fullscreenIndica se l'applicazione deve essere eseguita in una finestra (fullscreen = 0) oppure a schermo intero (fullscreen = 1)
titoloIl titolo della finestra nel caso l'applicazione non sia in fullscreen altrimenti non ha effetto
Osservazioni
Valori non corretti di altezza e larghezza fanno fallire l'inizializzazione e di conseguenza il programma.
void leggi_mouse ( )

Legge lo stato del mouse e lo memorizza nelle variabili mouseX, mouseY, mouseTD, mouseTS.

Osservazioni
Questa funzione deve essere chiamata quando si vuole leggere lo stato del mouse: quando chiamata aggiorna i valori nelle variabili globali mouseX, mouseY, mouseTD, mouseTS
void leggi_stringa ( char *  input,
const char *  messaggio,
int  cancella,
int  x,
int  y,
const Colore c = NERO 
)

Aspetta che l'utente inserisca una stringa da tastiera, ha un comportamento simile alla gets.

Parametri
inputLa stringa dove verrà memorizzato quanto scritto dall'utente
messaggioIl messaggio che viene mostrato dove l'utente deve inserire l'input
cancellaIndica se quanto scritto deve sparire dopo che viene premuto INVIO oppure rimanere.
xCoordinata x dell'angolo in alto a sinistra del messaggio
yCoordinata y dell'angolo in alto a sinistra del messaggio
cColore del messaggio e dell'input dell'utente
Avvertimento
Deve essere cura del programmatore che input sia sufficientemente grande da contenere la stringa inserita dall'utente
La funzione è bloccante, quindi finchè l'utente non preme il tasto INVIO il programma rimane bloccato
void leggi_tastiera ( )

Legge lo stato della tastiera e deve essere chiamata prima di usare le funzioni che leggono i tasti.

Attenzione
Siccome questa funzione viene anche chiamata all'interno della funzione fatto(), all'interno del classico ciclo while(!fatto()) non è necessario chiamarla
unsigned long millisecondi ( )

Ritorna la quantità di millisecondi che sono passati da quando è stato avviato il programma.

Restituisce
NUmero di millisecondi da quando è stato avviato il programma
void muovi_oggetto ( int  x,
int  y,
int  indice_oggetto 
)

Muove un oggetto sullo schermo.

Parametri
xNuova coordinata x dell'angolo in alto a sinistra
yNuova coordinata y dell'angolo in alto a sinistra
indice_oggettoL'indice (un numero intero positivo) che viene ottenuto dalla funzione crea_oggetto
Avvertimento
Se l'indice passato non è un indice valido, la funzione non fa nulla
Osservazioni
La funzione oltre che a muovere l'oggetto ne cancella anche la sua copia nella posizione precedente, disegnando il colore di sfondo. Questo ovviamente richiede che lo sfondo sia uniforme.
void pausa ( )

Mette in pausa il programma, attendendo la pressione di un tasto.

Osservazioni
Non occupa tempo di CPU.
void pulisci_schermo ( const Colore c = NESSUN_COLORE)

Pulisce lo schermo, colorandolo di un solo colore.

Parametri
cIl colore con cui verrà ridisegnato lo schermo
Osservazioni
Se non viene specificato il colore, lo schermo viene riportato al colore di sfondo, che di default è nero
Avvertimento
Va usata con moderazione perchè è computazionalmente pesante
void ritardo ( int  millisecondi)

Mette in pausa il programma per un certo tempo.

Parametri
millisecondiDurata della pausa in millisecondi
Osservazioni
Durante una pausa il programma non è in grado di fare nient'altro
void salva_screenshot ( const char *  nomefile)

Salva la schermata corrente su file in formato bitmap.

Avvertimento
Non viene fatto nessun genere di controllo, se non funziona fallisce silenziosamente
Parametri
nomefileIl nome del file su cui salvare lo screenshot
void scrivi ( int  x,
int  y,
const char *  s,
const Colore c = BIANCO 
)

Permette di mostrare una scritta a video.

Parametri
xCoordinata x dell'angolo in alto a sinistra della scritta
yCoordinata y dell'angolo in alto a sinistra della scritta
sLa scritta da mostrare a video
cColore della scritta: se non viene specificato il valore di default è bianco
Osservazioni
Allo stato attuale le scritte sono in un unico font con dimensione 8x8.
void suona_effetto ( int  effetto)

Manda il esecuzione l'effetto individuato dal parametro.

Parametri
effettoIl numero che individua l'effetto caricato
Da fare:
Da fare meglio
void suona_musica ( )

Manda il esecuzione il file caricato con carica_musica.

Da fare:
Da fare meglio
bool tasto_giu ( int  tasto)

Verifica lo stato del pulsante tasto nel momento in cui è chiamata, ritornando true se è premuto o false altrimenti. Offre una modalità di lettura dei tasti complementare a quella di tasto_premuto, va usata l'una o l'altra a seconda delle esigenze del programma.

Parametri
tastoIl tasto come definito nella libreria SDL, per la tabella completa si rimanda a http://wiki.libsdl.org/moin.cgi/SDLKeycodeLookup. Per le lettere e le cifre basta scrivere SDLK_n, dove n è la lettera o la cifra che interessa
Restituisce
Vero se tasto è attualmente premuto, falso altrimenti.
Attenzione
Deve essere chiamata dopo leggi_tastiera o all'interno di un ciclo che usa la funzione fatto()
bool tasto_premuto ( int  tasto)

Verifica se un pulsante è stato premuto o no nel momento in cui è chiamata, ma solo la prima sostanzialmente serve per verificare se il tasto è stato premuto, non lo stato che ha in questo momento, se interessa sarebbe lo stato attuale del tasto bisogna usare tasto_giu.

Parametri
tastoIl tasto come definito nella libreria SDL, per la tabella completa si rimanda a http://wiki.libsdl.org/moin.cgi/SDLKeycodeLookup. Per le lettere e le cifre basta scrivere SDLK_n, dove n è la lettera o la cifra che interessa
Restituisce
Vero se tasto è stato premuto, falso altrimenti.
Attenzione
Deve essere chiamata dopo leggi_tastiera o all'interno di un ciclo che usa la funzione fatto()
Ritorna vero solo la prima volta volta che viene chiamata con il tasto premuto, per ritornare ancora vero il tasto deve essere rilasciato e poi premuto un'altra volta
void versione ( char *  s)

Copia in s il valore corrente di versione della libreria.

Parametri
sLa stringa che conterrà la versione corrente
Attenzione
Viene garantito che la dimensione massima del vettore di cartteri copiato in s è 100 (compreso il terminatore). E' cura del programmatore far sì che s sia sufficientemente capiente