Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
#include <allegro.h> #include<time.h> volatile int timerCounter = 0; static void timerCounterUpdater(){ timerCounter++; } END_OF_STATIC_FUNCTION(timerCounterUpdater); LOCK_FUNCTION(timerCounterUpdater); LOCK_VARIABLE(timerCounter); install_int_ex(timerCounterUpdater, BPS_TO_TIMER(60)); int main(int argc, char **argv) { allegro_init(); install_keyboard(); set_color_Depth(32); set_gfx_mode(GFX_AUTODETECT_FULLSCREEN 800, 800, 0, 0); BITMAP *doublebuffer = create_bitmap(SCREEN_W, SCREEN_W); BITMAP *logo = load_bitmp("allegro.tga", NULL); if(timerCounter > 0) { do { cur.logic++; timerCounter--; }while(timerCounter > 0); needsRefresh = TRUE; }if(needsRefresh){ acquire_bitmap(doublebuffer); clear(doublebuffer); blit(logo, doublebuffer, 0, 0, 0, 0 logo->w, logo->h); release_bitmap(doublebuffer); blit(doublebuffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H); needsRefresh = FALSE; } } END_OF_MAIN(); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
volatile int timerCounter = 0; static void timerCounterUpdater() { timerCounter++; } END_OF_STATIC_FUNCTION(timerCounterUpdater); int main() { allegro_init(); install_timer(); vsync(); /* Timer Funktionen und Variablen locken */ LOCK_FUNCTION(timerCounterUpdater); LOCK_VARIABLE(timerCounter); /* Die logische Framerate setzen */ install_int_ex(timerCounterUpdater, BPS_TO_TIMER(69)); // .. etc. } |
Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »Architekt« (26.09.2010, 12:54)
Erstmal danke für diese unglaublich schnelle Antwort (hab ich noch nie erlebt). Aber der Fehler mit install_int_ex... ist jetzt weg aber zwei Fehler die eigentlich ganz simpel sint hab ich noch uns zwar die stellen needsRefresh = TRUE; und cur.logic++; dort hab ich folgende errors cur.lgic++; undeclared
needsRefresh = TRUE; undeclared.
C-/C++-Quelltext |
|
1 |
unsigned int cur_logic = 0; |
den quelcode hab ich aus dem buch spieleprogrammierung von lennart steinke auf seiner website http://www.steinke.net/coding.php ist auch noch mal der code. und da hat er es so ähnlich stehen
C-/C++-Quelltext |
|
1 |
cur.logic++
|
C-/C++-Quelltext |
|
1 |
int curSkip = 0; |
C-/C++-Quelltext |
|
1 |
curSkip++;
|
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
#include <allegro.h> #include<time.h> volatile int timerCounter = 0; static void timerCounterUpdater(){ timerCounter++; } END_OF_STATIC_FUNCTION(timerCounterUpdater); LOCK_FUNCTION(timerCounterUpdater); LOCK_VARIABLE(timerCounter); install_int_ex(timerCounterUpdater, BPS_TO_TIMER(60)); int main(int argc, char **argv) { allegro_init(); install_keyboard(); set_color_Depth(32); set_gfx_mode(GFX_AUTODETECT_FULLSCREEN 800, 800, 0, 0); BITMAP *doublebuffer = create_bitmap(SCREEN_W, SCREEN_W); BITMAP *logo = load_bitmp("allegro.tga", NULL); bool needsRefresh; int curskip = 0; int maxskip = 6; if(timerCounter > 0) { do { timerCounter--; curskip++; if(curskip>=maxskip) { timerCounter = 0; break; } }while(timerCounter > 0); needsRefresh = TRUE; }if(needsRefresh){ acquire_bitmap(doublebuffer); clear(doublebuffer); blit(logo, doublebuffer, 0, 0, 0, 0 logo->w, logo->h); release_bitmap(doublebuffer); blit(doublebuffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H); needsRefresh = FALSE; } } END_OF_MAIN(); |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
#include <allegro.h> #include <time.h> volatile int timerCounter = 0; static void timerCounterUpdater(){ timerCounter++; } END_OF_STATIC_FUNCTION(timerCounterUpdater); const unsigned int SCREEN_W = 800; const unsigned int SCREEN_H = 600; int main() { allegro_init(); install_keyboard(); install_timer(); vsync(); LOCK_FUNCTION(timerCounterUpdater); LOCK_VARIABLE(timerCounter); install_int_ex(timerCounterUpdater, BPS_TO_TIMER(60)); set_color_Depth(32); set_gfx_mode(GFX_AUTODETECT_FULLSCREEN 800, 800, 0, 0); BITMAP * doublebuffer = create_bitmap(SCREEN_W, SCREEN_W); BITMAP * logo = load_bitmp("allegro.tga", NULL); bool needsRefresh; unsigned int cur_skip = 0; unsigned int max_skip = 6; if (timerCounter > 0) { do { timerCounter--; cur_skip++; if(cur_skip >= max_skip) { timerCounter = 0; break; } } while(timerCounter > 0); needsRefresh = true; } if (needsRefresh) { acquire_bitmap(doublebuffer); clear(doublebuffer); blit(logo, doublebuffer, 0, 0, 0, 0 logo->w, logo->h); release_bitmap(doublebuffer); blit(doublebuffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H); needsRefresh = false; } } END_OF_MAIN(); |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Architekt« (26.09.2010, 18:18)
Werbeanzeige