I’m working on my first game in Allegro 5, I’ve got the title menu rendering as such, however I want to add clickable text in the menu. How would I make it so that, when you hover over the text you can click it? I’m thinking having a for statement checking the pixels would be very bad for performance, here’s what I have so far:
#include <allegro5\allegro.h>
#include <allegro5\allegro_image.h>
#include <allegro5\allegro_primitives.h>
const int width = 1280;
const int height = 720;
int main(void)
{
al_init();
al_init_primitives_addon();
al_init_image_addon();
ALLEGRO_DISPLAY *display = al_create_display(width, height);
ALLEGRO_BITMAP *title = al_load_bitmap("titlemenu.bmp");
al_clear_to_color(al_map_rgb(0, 0, 0));
al_draw_bitmap(title, 0, 0, 0);
al_flip_display();
al_rest(3.0);
al_destroy_display(display);
return 0;
}
I’m using codeblocks on windows XP SP3
To do it “properly,” you’d need to use some sort of GUI library. But you can easily create a clickable section of the screen by hardcoding some rectangle’s coordinates.
First you’ll need to set up your event handling:
Without getting into the specifics of event handling (it’s an entire topic of its own), here’s the relevant bit:
There are many ways to improve upon this example… This is just to get you started.
You should carefully read through the documentation regarding event handling and examine the bundled examples and check out the wiki for more information.
PS: Use forward slashes when using file paths, as they are cross platform: