Code:
int main() {
init();
GameManager game; //derived from EventHandler
Object obj(SCREEN_W/2, SCREEN_H/2, 40); //also from EventHander
KeyboardReader kb;
kb.attach(&game, KeyboardReader::KeyDown, GameManager::GAME_OVER, KEY_ESC);
kb.attach(&game, KeyboardReader::KeyDown, GameManager::GAME_OVER, KEY_SPACE);
kb.attach(&game, KeyboardReader::KeyUp, GameManager::GAME_OVER, KEY_ENTER);
kb.attach(&game, KeyboardReader::KeyDown, GameManager::DRAW_BLUE, KEY_B);
kb.attach(&game, KeyboardReader::KeyDown, GameManager::DRAW_GREEN, KEY_G);
kb.attach(&game, KeyboardReader::KeyUp, GameManager::DRAW_RED, KEY_B);
kb.attach(&game, KeyboardReader::KeyUp, GameManager::DRAW_RED, KEY_G);
kb.attach(&obj, KeyboardReader::KeyHeld, Object::LEFT, KEY_LEFT);
kb.attach(&obj, KeyboardReader::KeyHeld, Object::RIGHT, KEY_RIGHT);
kb.attach(&obj, KeyboardReader::KeyHeld, Object::UP, KEY_UP);
kb.attach(&obj, KeyboardReader::KeyHeld, Object::DOWN, KEY_DOWN);
BITMAP* buffer = create_bitmap(SCREEN_W, SCREEN_H);
while (!game.over()) {
kb.run_scan();
game.draw_background(buffer);
obj.draw(buffer);
vsync();
blit(buffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H);
}
destroy_bitmap(buffer);
deinit();
return 0;
}
END_OF_MAIN()
Any criticism or suggestions?