アイワナ:ポーズ画面を作る
それっぽい記事が見当たらなかったので,show_message()を使わないポーズ画面の作成について書こうと思います.
※ここで書く方法は「i wanna be the engine ErunatyanEdition」で使われているものと同じです.
※この記事では「i wanna be the engine yuuutu edition ver2.16」にポーズ画面を実装します.
この方法で作れるポーズ画面のイメージはこんな感じ↓ここからは実際に作り方を説明していきます.
ポーズ画面に表示する文字を作成する
drawイベントで「Pause」とかの文字を描画するのでも問題ありませんが,ちょっと装飾とかを加えるといい感じになるのでspriteに追加していきます.名前は「sprPause」とかで.
ポーズ画面を描画するオブジェクトを作成する
オブジェクトを作成し,名前を「Pause」とかにします.
「Pause」のVisibleにチェックを入れ,Depthは-100ぐらいに.
ここから具体的に描画するものを設定していきます.
ポーズ中であることがわかるように画面全体を少し暗くする処理と,さっき作成した文字を表示する命令を「draw」イベントに書いていきます.
//draw event draw_set_color(c_black); draw_set_alpha(0.4); draw_rectangle(x, y, x+800, y+608, false); draw_set_alpha(1); draw_sprite(sprPause, 0, x+400, y+304);
ポーズ状態にするためのオブジェクトを作成する
オブジェクトを作成し,名前を「objPause」とかにします.
Visibleとかの設定はそのままでいいです.
その後,「Create」イベントと「Step」イベントに以下のコードを書きます.
//create event is_pause = false;
//step event if(is_pause == true){ while (1) { if (keyboard_check_pressed(vk_anykey)) { is_pause = false; with (Pause) instance_destroy(); break; } sleep(10); } }else{ if (keyboard_check_pressed(global.pausebutton)) { is_pause = true; instance_create(view_xview, view_yview, Pause); } }
作成したポーズ機能を使えるようにする
まず,オブジェクト「Player」の「Step」イベントに以下のコードを追加します.このif文に条件を追加したりすれば特定のルームではポーズ機能を使えなくするみたいなこともできます.
//step event if(global.Pause_Message == 1 && !instance_exists(objPause)){ instance_create(0, 0, objPause); }
次に,「script」内の「SetGlobalOption」に,以下のコードを追加します.
//script SetGlobalOption global.pausebutton = ord('P');
最後に,オブジェクト「world」の「press P-key」イベントを削除します.
これで完成です!お疲れさまでした.