Textout in allegro.h non compare nessuna scritta nello scher

di il
4 risposte

Textout in allegro.h non compare nessuna scritta nello scher

Salve ho fatto questo semplice giochino e non mi funziona la funzione textout! Il compilatore lo compila ma non funziona! Non mi compare nessuna scritta! Spero mi possiate aiutare! GRAZIE

Il problema è in void punti()!
#include<allegro.h>
#include<stdlib.h>
#include<string.h>

BITMAP *buf,*sprite,*sfondo,*palla,*sprite2;
PALETTE colori;
int x, y,xpalla,ypalla,sx,sy,caso=0,contapunti=0,contapunti1=0,i=0,xp=1,yp=1,color=215;
char score[25],v[15];

void doppiobuffering(){vsync();
blit(buf, screen,0,0,0,0,320,200);
clear(buf);}

void player(){draw_sprite(buf,sprite,x,y);}
void player1(){draw_sprite(buf,sprite2,sx,sy);}
void oggetto(){ draw_sprite(buf,palla,xpalla,ypalla);}
void movimentotasti(){ 
     if(key[KEY_R])caso=0;contapunti=0;contapunti1=0;
     if(key[KEY_LEFT])x=x-3;if(x<=0)x=0;/*muove a sinistra*/
     if(key[KEY_RIGHT])x=x+3;if(x>=251)x=251;/*muove a destra*/
     if(key[KEY_A])sx=sx-2;if(sx<=0)sx=0;/*muove a sinistra*/
     if(key[KEY_D])sx=sx+2;if(sx>=251)sx=251;/*muove a destra*/}
     
void movimentopalla(){if((xpalla>=290)&&(caso==6)){caso=5;}if((xpalla<=2)&&(caso==5)){caso=6;}
if((xpalla>=290)&&(caso==3)){caso=4;}if((xpalla<=2)&&(caso==4)){caso=3;}
    if((ypalla>=y-8)&&((xpalla<x+13)&&(xpalla>=x-7))){caso=5;}
     if((ypalla>=y-8)&&((xpalla<x+24)&&(xpalla>=x+15))){caso=2;}
     if((ypalla>=y-8)&&((xpalla<x+39)&&(xpalla>=x+24))){caso=6;}
     
     if((ypalla<=sy+8)&&((xpalla<sx+13)&&(xpalla>=sx-7))){caso=4;}
     if((ypalla<=sy+8)&&((xpalla<sx+24)&&(xpalla>=sx+15))){caso=1;}
     if((ypalla<=sy+8)&&((xpalla<sx+39)&&(xpalla>=sx+24))){caso=3;}
     
         if(caso==1){ypalla+=2;}
         if(caso==2){ypalla-=2;}
         if(caso==3){ypalla+=2;xpalla+=2;}
         if(caso==4){ypalla+=2;xpalla-=2;}
         if(caso==5){ypalla-=2;xpalla-=2;}
         if(caso==6){ypalla-=2;xpalla+=2;}   
         if(caso==0){xpalla=153;ypalla=100;caso=1;}          
     }
  
void punti(){ 

sprintf(score, "Punti G1:%ld   Punti G2:%ld",(long)contapunti,(long)contapunti1);
           textout(buf,font,score,1,1,215);
              

  if(ypalla==sy-1){ contapunti++; xpalla=153;ypalla=100;caso=1;x=134;y=193;sx=134;sy=7;}
               if(ypalla==y+1){ contapunti1++;  xpalla=153;ypalla=100;caso=2;x=134;y=193;sx=134;sy=7;}
               
                        }
void fondale(){ blit(sfondo,buf,0,0,0,0,320,200);}
     
int main(){
    allegro_init();
    install_keyboard();
    set_color_depth(32);/*Colori a 32 bit*/
    
    set_palette(colori);
    
    set_gfx_mode(GFX_AUTODETECT, 320, 200,0,0);
    buf=create_bitmap(320,200);
    clear(buf);
    sprite=load_bmp("playar.bmp",colori);
    sprite2=load_bmp("playar.bmp",colori);
    sfondo=load_bmp("fondale1.bmp",colori);
    palla=load_bmp("palla.bmp",colori);
    x=134;y=193;
    xpalla=153;ypalla=101;
    sx=134;sy=7;
    while(!key[KEY_ESC]){
                         doppiobuffering();
                         fondale();
                         player();
                         player1();
                         oggetto();
                         punti();
                         movimentotasti();
                         movimentopalla();
                                               }
                         destroy_bitmap(buf);
                         destroy_bitmap(sprite);
                         destroy_bitmap(sprite2);
                         destroy_bitmap(sfondo);
                         destroy_bitmap(palla);}
                         END_OF_MAIN();

4 Risposte

Devi accedere o registrarti per scrivere nel forum
4 risposte