Allegroプログラム Level 0

以下のURLを参考にシューティングゲームを作ってみます。

龍神録プログラミングの館
http://dixq.net/rp/

プログラミング/初心者向け/チュートリアル/段階的学習/STGを作れ
http://wiki.game-develop.com/index.php?%A5%D7%A5%ED%A5%B0%A5%E9%A5%DF%A5%F3%A5%B0%2F%BD%E9%BF%B4%BC%D4%B8%FE%A4%B1%2F%A5%C1%A5%E5%A1%BC%A5%C8%A5%EA%A5%A2%A5%EB%2F%C3%CA%B3%AC%C5%AA%B3%D8%BD%AC%2FSTG%A4%F2%BA%EE%A4%EC

とりあえず、前回からの修正でESCキーを押したら
アプリが終了するように改修してみました。

[c]
#include <stdio.h>
#include <allegro5/allegro.h>

int main(int argc, char **argv)
{
ALLEGRO_DISPLAY *display = NULL;
ALLEGRO_EVENT_QUEUE *event_queue = NULL;

bool exitFlg = false;
bool redraw = true;

// 初期化
if(!al_init()) {
fprintf(stderr, "failed to initialize allegro!n");
return -1;
}

// 画面の作成
display = al_create_display(640, 480);
if(!display) {
fprintf(stderr, "failed to create display!n");
return -1;
}

// キーボード入力の初期化
if(!al_install_keyboard()) {
fprintf(stderr, "failed to initialize keyboard!n");
return -1;
}

// イベントキューの作成
event_queue = al_create_event_queue();
if(!event_queue) {
fprintf(stderr, "failed to create event_queue!n");
al_destroy_display(display);
return -1;
}

// イベントに参加させる
al_register_event_source(event_queue, al_get_display_event_source(display));
al_register_event_source(event_queue, al_get_keyboard_event_source());

// 画面のクリア
al_clear_to_color(al_map_rgb(0, 0, 0));

// 裏画面の切り替え
al_flip_display();

ALLEGRO_EVENT ev;
while(!exitFlg) {

al_wait_for_event(event_queue, &ev);

if(ev.type == ALLEGRO_EVENT_KEY_UP) {
// 何かキーが押して放されたらここにくる
switch(ev.keyboard.keycode) {
case ALLEGRO_KEY_ESCAPE:
exitFlg = true;
break;
}

} else if(ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE) {
// 画面が閉じるときにここに来る
break;
}

if(redraw && al_is_event_queue_empty(event_queue)) {
// 再描画処理
redraw = false;

// 画面のクリア
al_clear_to_color(al_map_rgb(0, 0, 0));

// 裏画面の切り替え
al_flip_display();
}
}

// 画面の解放
al_destroy_display(display);

// キーボード入力の解放
al_uninstall_keyboard();

// イベントキューの削除
al_destroy_event_queue(event_queue);

return 0;
}
[/c]

コメント

タイトルとURLをコピーしました