salve a tutti,
sto leggendo la guida sulla programmazione di giochi con le librerie allegro (trovata su manuali.it)
ho realizzato un semplice programma che visualizza l'immagine del giocatore e uno sfondo, tutte le immagine sono in forato .bmp però quando eseguo il programma i colori sono errati ovvero l'erba che dovrebbe essere verde invece è blu, il cielo è giallo ecc...
qualcuno sa aiutarmi?
ecco il codice completo
e il codice del file header#include<allegro.h>
#include"Main.h"
#define H_ris 640
#define L_ris 480
int main() {
allegro_init();
/*periferiche*/
install_keyboard();
/*colori*/
set_color_depth(32);
set_palette(colori);
sprite = load_bmp("player.bmp", colori);
x = 10; y = 10;
sfondo = load_bmp("sfondo.bmp", colori);
/*sfondo*/
scrolling = create_bitmap(2560, 480);
clear(scrolling);
for (moltiplica=0;moltiplica<=2560;moltiplica=moltipli ca+1280) {
blit(sfondo, scrolling, 0, 0, moltiplica, 0, 1280, 480);
}
set_gfx_mode(GFX_AUTODETECT_WINDOWED, H_ris, L_ris, 0, 0);
buf = create_bitmap(H_ris, L_ris);
clear(buf);
while(!key[KEY_ESC]) {
doppiobuffering();
fondale();
player();
movimentotasti();
}
destroy_bitmap(buf);
destroy_bitmap(sprite);
destroy_bitmap(sfondo);
destroy_bitmap(scrolling);
}
END_OF_MAIN();
AIUTO!#define H_ris 640
#define L_ris 480
/*Dichiarazioni Variabili*/
BITMAP *buf, *sprite, *sfondo, *scrolling;
PALETTE colori;
int x, y, moltiplica, xscroll;
/*Prototitpi Funzioni*/
void doppiobuffering() {
vsync();
blit(buf, screen, 0, 0, 0 ,0, H_ris, L_ris);
clear(buf);
}
void player() {
draw_sprite(buf, sprite, x, y);
}
void movimentotasti() {
if(key[KEY_LEFT]) x=x-4; if(x<=0) x=0;
if(key[KEY_RIGHT]) x=x+4; if(x>=(H_ris-45)) x=(H_ris-45);
if(key[KEY_UP]) y=y-4; if(y<=0) y=0;
if(key[KEY_DOWN]) y=y+4; if(y>=(L_ris-45)) y=(L_ris-45);
}
void fondale() {
xscroll = xscroll+1;
blit(scrolling, buf, xscroll, 0, 0, 0, H_ris, L_ris);
if(xscroll>1279) {
xscroll = 0;
}
}

Rispondi quotando