Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
si vede che non hai mai letto uno guida riguardo ALLEGRO! perchè la prima cosa che ti insegnano è evitare questo problema! in poche parole devi dichiarare un altro BITMAP che funziona da buffer cioè la zona dello schermo dove disegnerai lo sprite verrà "preparata" per essere riempita con un'immagine. in termini di codice devi fare questo;
Codice sorgente - presumibilmente C/C++
BITMAP *buffer=create_bitmap(x,y);
clear(buffer);
void doppiobuffering(){
vsync();
blit(buffer, screen,0,0,0,0,x,y);
clear(buffer);}
dove x e y sono la larghezza e lunghezza della tua finestra. Devi chiamare questa funzione prima di eseguire ogni draw_sprite(). In ogni caso ti consiglio caldamente di imparare l'uso di blit() perchè come te l'ho scritto io non è il migliore dei modi.
il doppiobuffering XD scusa non ci avevo proprio pensato!Comunque io sto seguendo la miglior guida di allegro in italiano quella di bertinettobartolomeodavide...
Lo so che ti sto rompendo ma ho un ultimo problema...QUANDO SALTA SI VEDE A SCATTI!
ecco il codice del salto completo e un po migliorato...
Codice sorgente - presumibilmente C/C++
if (key[KEY_SPACE]){
for(a=0;a<10;a++){
y=y-5;
if(key[KEY_LEFT])x=x-3;
if(key[KEY_RIGHT])x=x+3;
draw_sprite(screen,sprite,x,y);
doppiobuffering();
blit(background, buffer, 0, 0, 0, 0, 640, 480);
}
for(b=0;b<10;b++){
y=y+5;
if(key[KEY_LEFT])x=x-3;
if(key[KEY_RIGHT])x=x+3;
draw_sprite(screen,sprite,x,y);
doppiobuffering();
blit(background, buffer, 0, 0, 0, 0, 640, 480);
}
}
come risolgo il problema?
si vede a scatti non perchè è lento ma lo sfondo e lo sprite si accendono e spentono quando salto...
Ultima modifica effettuata da russoandrea96 il 22/08/2010 alle 0:20