ok hab jetz die neuste version 5.0.0 benutz und den beispiel code benutzt der bei einem installations tut dabei war. Der Beispielcode hat auch ganz gut geklappt aber wenn ich meinen code aus meinem Buch benutzen will krieg ich nur fehler also hier der beispiel code :
http://www.allegro.cc/forums/thread/606041
und hier meiner :
#include
#include
#include
using std::string;
volatile int timerCounter = 0;
static void timerCounterUpdater() {
timerCounter++;
} END_OF_STATIC_FUNCTION(timerCounterUpdater);
void init() {
allegro_init();
install_keyboard();
LOCK_FUNCTION(timerCounterUpdater);
LOCK_VARIABLE(timerCounter);
install_int_ex(timerCounterUpdater, BPS_TO_TIMER(60));
}
int main(int argc, char **argv) {
init();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 800, 800, 0, 0);
BITMAP * logo = load_bitmap("allegro.bmp", NULL);
BITMAP * doublebuffer = create_bitmap(800, 800);
int x = 0;
int y = 0;
int dx = 1;
int dy = 1;
int maxSkip = 4;
int curSkip = 0;
bool needRefresh = false;
while (!keypressed()) {
curSkip = 0;
if (timerCounter > 0) {
do {
if (x + dx < 0) {
dx *= -1;
} else if (x + logo->w >= SCREEN_W) {
dx *= -1;
}
// Oberer und unterer Rand
if (y + dy < 0) {
dy *= -1;
} else if (y + logo->h >= SCREEN_H) {
dy *= -1;
}
x+= dx;
y+= dy;
timerCounter--;
curSkip++;
if (curSkip >= maxSkip) {
timerCounter = 0;
break;
}
} while(timerCounter > 0);
needRefresh = true;
}
if (needRefresh) {
acquire_bitmap(doublebuffer);
clear(doublebuffer);
blit(
logo, doublebuffer,
x, y,
0, 0,
logo->w,
logo->h
);
release_bitmap(doublebuffer);
blit(
doublebuffer, screen,
0, 0, 0, 0,
SCREEN_W, SCREEN_H
);
needRefresh = false;
}
}
} END_OF_MAIN();
mfg crunchop</allegro5>