PDA

View Full Version : [C] Libreria allegro in C: faccio giusto?


ianaz
04-10-2005, 15:45
Ciao, ho iniziato da poco con la libreria allegro.h senza guida.

Ho fatto un piccolo programminoper imparare un po' a caricare immagini eccetera.
Dev-Cpp non mi da nessun errore ma mi potete dire se in questo codice c'é qualcosa di sbagliato? (ad esempio caricare doppiamente blit(imgprova, screen, 0, 0, 0, 0, 800, 600);)
Altra cosa: qualcuno sa se si trovano delle guide su allegro.h in italiano?
Il codice é questo:


#include <allegro.h>
#include <stdio.h>
#include <conio.h>
BITMAP *buf, *logo, *immagine, *imgprova;
PALETTE image;
int ritardo, vai;
SAMPLE *musica;

void inizio(){


if(key[KEY_ENTER]){
vai = 1;
}
if(vai == 1){
imgprova = load_bmp("provaimg.bmp",image); //qui come prova carico un immagine prova solamente per esempio
set_palette(image);
blit(imgprova, screen, 0, 0, 0, 0, 800, 600); //questo, é giusto???
textout_ex(screen, font, "Premi ESC per uscire ", 275, 470,
makecol(0, 0, 255), -1);
}

else {
immagine = load_bmp("black.bmp",image);
set_palette(image);
blit(immagine, screen, 0, 0, 0, 0, 800, 600);
}

}


int main()
{
allegro_init();
install_keyboard();

set_gfx_mode(GFX_SAFE, 800, 600, 255, 0);
install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, 0);

logo = load_bmp("logo.bmp",image);
if(!logo){
allegro_message("Il file \"logo.bmp\" non e stato trovato");
return 0;
}
else{
blit (logo, screen, 0, 0, 0, 0, 800, 600);
}
musica = load_sample("musica.wav");
if(!musica){
allegro_message("Il file \"musica.wav\" non e stato trovato");
return 0;
}
else{
play_sample(musica, 255,255,5000, FALSE);
}
set_palette(image);

textout_ex(screen, font, "BENVENUTI IN...", 200, 230,
makecol(0, 0, 255), -1);
textout_ex(screen, font, "Premi ESC durante il gioco per uscire ", 275, 470,
makecol(0, 0, 255), -1);

for(ritardo=0;ritardo<200;ritardo++){
vsync();
}

while(!key[KEY_ESC]){
inizio();
}

destroy_bitmap(logo);
stop_sample(musica);
allegro_message(" Created by ianaz\t");


return 0;
}
END_OF_MAIN ();

ianaz
04-10-2005, 17:11
So che non avete voglia di leggere il codice, vi capisco, ma per favore, dateci un occhiata :)

cionci
04-10-2005, 17:42
Più che altro non credo che allegro sia così diffuso ;)

ianaz
04-10-2005, 17:55
Più che altro non credo che allegro sia così diffuso ;)
Si, é diffuso...per C é diffuso credo. Se ne sai un'altro dimmelo :D
Comunque i videogiochi piu famosi sono stati fatti in C...Counter Strike 1.6 (da quello che m'han detto), Metroid e altri bellucci. Io volevo fare per cominciare una cosa tipo Pong

cionci
04-10-2005, 17:57
Non mi riferivo al C, ma ad Allegro... Allora mi sposterei su SDL + OpenGL... Sicuramente troverai più aiuto, almeno su questo forum...

ianaz
04-10-2005, 17:58
Allora mi sposterei su SDL + OpenGL... Sicuramente troverai più aiuto, almeno su questo forum...
E non é un po' complicatuccio siccome ho appena iniziato?

cionci
04-10-2005, 18:03
Dai un'occhiata qui: http://www.libsdl.org/tutorials.php
Diciamo che se usi le funzioni di SDL per il 2D OpenGL te lo puoi anche scordare...

ianaz
04-10-2005, 18:12
Dai un'occhiata qui: http://www.libsdl.org/tutorials.php
Diciamo che se usi le funzioni di SDL per il 2D OpenGL te lo puoi anche scordare...
Vabbé per me é uguale, pensavo che era meglio farlo prima in 2d un giochino...poi magari andare sul più difficile. Voi che consigliate allora?
Mi imparo OpenGL (é una libreria? :D) oppure sto su allegro?

cionci
04-10-2005, 18:17
Come ti dicevo se impari SDL, per il 2D offre già tutte le funzioni che ti servono, senza stare a scomodare OpenGL...

ianaz
04-10-2005, 18:21
Come ti dicevo se impari SDL, per il 2D offre già tutte le funzioni che ti servono, senza stare a scomodare OpenGL...
Si ma io intendo se consigliate opengl o sdl allora...Ma scusa la mia ignoranza...SDL cos'é? È una libreria?

cionci
04-10-2005, 18:23
SDL è una libreria... OpenGL è una libreria... Allegro è una libreria...

SDL e OpenGL possono lavorare benissimo insieme...ad SDL si deroga una parte del lavoro che OpenGL non fa... Comunque per un giochino 2D basta SDL...

ianaz
04-10-2005, 18:29
SDL è una libreria... OpenGL è una libreria... Allegro è una libreria...

SDL e OpenGL possono lavorare benissimo insieme...ad SDL si deroga una parte del lavoro che OpenGL non fa... Comunque per un giochino 2D basta SDL...
E voi (tu) che mi consigliate allora?
Interpolare (chevvuoldire? :P) OpenGL e SDL?

cionci
04-10-2005, 18:31
Se devi fare un giochino 2D sicuramente solo SDL...

ianaz
04-10-2005, 18:35
Se devi fare un giochino 2D sicuramente solo SDL...
Ma non devo...a me piaceva imparare un po' di C...se é 3d o 2d é indifferente solamente che per la difficoltà penso che sia più semplice in 2D :D

cionci
04-10-2005, 18:40
Mettiamola così...se vuoi imparare il C facendo un giochino 2D usa solo SDL...
Se vuoi imparare C facendo un giochino 3D allora impara OpenGL...

Traxsung
04-10-2005, 18:45
Grazie anche da parte mia cionci... mi serviva un punto di riferimento da dove iniziare ^_^

ianaz
04-10-2005, 18:56
Mettiamola così...se vuoi imparare il C facendo un giochino 2D usa solo SDL...
Se vuoi imparare C facendo un giochino 3D allora impara OpenGL...
Ok th

ianaz
04-10-2005, 20:02
Ma allora per tanto così se voglio fare un 2D é meglio che rimango ancora su allegro no?!

Traxsung
04-10-2005, 20:21
... penso che cionci voleva dirti che con allegro molto probabilmente non trovi molta documentazione a riguardo.

ianaz
04-10-2005, 20:23
... penso che cionci voleva dirti che con allegro molto probabilmente non trovi molta documentazione a riguardo.
ah, vabbbé....allora chiedo a gente che sa più di me... :D
Comunque ripeto la mia domanda per chi usa allegro: sapete delle guide o tutorial in ITALIANO?

cionci
04-10-2005, 23:46
Ma allora per tanto così se voglio fare un 2D é meglio che rimango ancora su allegro no?!
Non so più come dirtelo...se vuoi fare 2D vai su SDL perchè è molto più diffuso...