Ciao a tutti, sono un neofita della programmazione su C++...diciamo che ho inizato ieri con un tutorial (che non è molto chiaro purtroppo) ed ora mi trovo bloccato perchè non riesco ad inserire, al contrario di immagini .bmp, immagini .png. Uso Allegro ed ho installato alpng, loadpng e zlib ma non c'è verso...
Incollo il file sorgente nella speranza che qualche anima pia mi aiuti
se compilo ed eseguo mi dice : [Linker Error] undefined reference to 'load_png' ...
#include "allegro.h"
#include "zlib.h"
#include "loadpng.h"
#include <alpng.h>
BITMAP *buf,*sprite,*sfondo,*scrolling;
PALETTE colori;
int x,y,moltiplica,xscroll;
void alpng_init(void);
void doppiobuffering()
{
vsync();
blit(buf,screen,0,0,0,0,1024,768);
clear(buf);
}
void player() {
draw_sprite(buf,sprite,x,y);
}
void movimentotasti(){
if(key[KEY_LEFT])x=x-10; if(x<=0) x=0;
if(key[KEY_RIGHT])x=x+10; if(x>=900) x=900;
if(key[KEY_UP])y=y-10; if(y<=0) y=0;
if(key[KEY_DOWN])y=y+10; if(y>=690) y=690;
}
void fondale(){
xscroll=xscroll+1;
blit(scrolling,buf,xscroll,0,0,0,1024,768);
if(xscroll>1023){
xscroll=0;
}
}
int main()
{
allegro_init();
install_keyboard();
set_color_depth(32);
set_palette(colori);
set_gfx_mode(GFX_AUTODETECT,1024,768,0,0);
buf=create_bitmap(1024,768);
clear(buf);
sprite=load_png("immagine.png",colori);
sfondo=load_bmp("sfondo1.bmp",colori);
scrolling=create_bitmap(2048,768);
clear(scrolling);
for(moltiplica=0;moltiplica<=2048;moltiplica=molti plica+1024){
blit(sfondo,scrolling,0,0,moltiplica,0,1024,768);
}
x=10;y=30;
while(!key[KEY_ESC]) {
doppiobuffering();
fondale();
player();
movimentotasti();
}
destroy_bitmap(buf);
destroy_bitmap(sprite);
destroy_bitmap(sfondo);
destroy_bitmap(scrolling);
}
END_OF_MAIN();