|
Installing Allegro 5.0.0 RC4 with Code::Blocks and MingW on Windows XP/7 |
DocHoliday
Member #12,498
January 2011
|
I figured that I would save some people some time when trying to install Allegro 5 with code::blocks. I wrote this guide really fast, so let me know if you have any questions or need clarification. BTW, I just found out that the syntax is different for version 5, and i just threw on the first working example that I could find, Installing Allegro 5.0.0 RC4 with Code::Blocks and MingW on Windows XP/7 1. Download "codeblocks-10.05mingw-setup.exe" located at: 2. Download "dx9mgw.zip" located at: 3.Download "cmake-2.8.3-win32-x86.exe" located at: 4. Download "allegro-5.0.0rc4.7z" located at: 5. Install the "codeblocks-10.05mingw-setup.exe" From step 1 6. Add this Environment Variable to the end of the "path" system variable: ;C:\codeblocks\mingw\bin; (make sure that a semi-colon precedes the name, as shown) 7. Make a new Environment Variable, a System Variable, named MINGDIR, and give it the value: C:\codeblocks\mingw. 8. Extract "dx9mgw.zip" to "dx9mgw" and copy the "lib" and "include" folders located inside of "dx9mgw" directly to C:\codeblocks\mingw. 9. Extract "allegro-5.0.0rc4.7z" to "allegro-5.0.0rc4", enter the directory and click until you see 10. Install "cmake-2.8.3-win32-x86.exe" to "C:\cmake" and be sure to select the option to "Add CMAKE to the system path for the current user". This is not the default. 11. Navigate to "C:\codeblocks\mingw\allegro" and create a new folder named "build". 12. Go to Start and type cmd to run the terminal window. 13. Run the Code::Blocks program for the first time. 14. Click File->New Project->Win32GUIProject. Click Next. Select "Frame Based" and click next. Name your project and put it in its own folder. Click Next. 15. Press F9 to run the window code if you want to. 16. Delete all of the code and enter the code below: 1#include <stdio.h>
2#include <allegro5/allegro.h>
3
4const float FPS = 60;
5const int SCREEN_W = 640;
6const int SCREEN_H = 480;
7const int BOUNCER_SIZE = 32;
8
9int main(int argc, char **argv)
10{
11 ALLEGRO_DISPLAY *display = NULL;
12 ALLEGRO_EVENT_QUEUE *event_queue = NULL;
13 ALLEGRO_TIMER *timer = NULL;
14 ALLEGRO_BITMAP *bouncer = NULL;
15 float bouncer_x = SCREEN_W / 2.0 - BOUNCER_SIZE / 2.0;
16 float bouncer_y = SCREEN_H / 2.0 - BOUNCER_SIZE / 2.0;
17 float bouncer_dx = -4.0, bouncer_dy = 4.0;
18 bool redraw = true;
19
20 if(!al_init()) {
21 fprintf(stderr, "failed to initialize allegro!\n");
22 return -1;
23 }
24
25 timer = al_create_timer(1.0 / FPS);
26 if(!timer) {
27 fprintf(stderr, "failed to create timer!\n");
28 return -1;
29 }
30
31 display = al_create_display(SCREEN_W, SCREEN_H);
32 if(!display) {
33 fprintf(stderr, "failed to create display!\n");
34 al_destroy_timer(timer);
35 return -1;
36 }
37
38 bouncer = al_create_bitmap(BOUNCER_SIZE, BOUNCER_SIZE);
39 if(!bouncer) {
40 fprintf(stderr, "failed to create bouncer bitmap!\n");
41 al_destroy_display(display);
42 al_destroy_timer(timer);
43 return -1;
44 }
45
46 al_set_target_bitmap(bouncer);
47
48 al_clear_to_color(al_map_rgb(255, 0, 255));
49
50 al_set_target_bitmap(al_get_backbuffer(display));
51
52 event_queue = al_create_event_queue();
53 if(!event_queue) {
54 fprintf(stderr, "failed to create event_queue!\n");
55 al_destroy_bitmap(bouncer);
56 al_destroy_display(display);
57 al_destroy_timer(timer);
58 return -1;
59 }
60
61 al_register_event_source(event_queue, al_get_display_event_source(display));
62
63 al_register_event_source(event_queue, al_get_timer_event_source(timer));
64
65 al_clear_to_color(al_map_rgb(0,0,0));
66
67 al_flip_display();
68
69 al_start_timer(timer);
70
71 while(1)
72 {
73 ALLEGRO_EVENT ev;
74 al_wait_for_event(event_queue, &ev);
75
76 if(ev.type == ALLEGRO_EVENT_TIMER) {
77 if(bouncer_x < 0 || bouncer_x > SCREEN_W - BOUNCER_SIZE) {
78 bouncer_dx = -bouncer_dx;
79 }
80
81 if(bouncer_y < 0 || bouncer_y > SCREEN_H - BOUNCER_SIZE) {
82 bouncer_dy = -bouncer_dy;
83 }
84
85 bouncer_x += bouncer_dx;
86 bouncer_y += bouncer_dy;
87
88 redraw = true;
89 }
90 else if(ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE) {
91 break;
92 }
93
94 if(redraw && al_is_event_queue_empty(event_queue)) {
95 redraw = false;
96
97 al_clear_to_color(al_map_rgb(0,0,0));
98
99 al_draw_bitmap(bouncer, bouncer_x, bouncer_y, 0);
100
101 al_flip_display();
102 }
103 }
104
105 al_destroy_bitmap(bouncer);
106 al_destroy_timer(timer);
107 al_destroy_display(display);
108 al_destroy_event_queue(event_queue);
109
110 return 0;
111}
17. This won't compile just yet. MAke sure to include the allegro library files as shown below: 18. Build,Compile, and run the code to see if everything installed correctly. |
Edgar Reynaldo
Major Reynaldo
May 2007
|
This looks like a pretty good guide. You should put it up on the Allegro wiki. Don't forget to use <code></code> tags for posting code. You can edit your post to fix this by clicking on the edit post button near the top of your post. My Website! | EAGLE GUI Library Demos | My Deviant Art Gallery | Spiraloid Preview | A4 FontMaker | Skyline! (Missile Defense) Eagle and Allegro 5 binaries | Older Allegro 4 and 5 binaries | Allegro 5 compile guide |
|