□投稿者/ ムロジェク -(2002/01/01(Tue) 22:14:21)
□U R L/ |
こんにちは、一つゲームを作ってみました。次々に表示される色の順番を覚えて答えるどこかで見たようなゲームです。始めは4回表示され、レベルが上がるにつれ表示回数が増えていきます。 プログラムのソース自体は変数名を思いつきでつけたりしてかなり雑な上に長いのであまり参考にはならないかも知れませんが遊んでいただければ幸いです。また、「プログラムのここをこうすればもっと良くなる」や「ここはもっと簡単に書ける」等有りましたら書き込んでいただければ嬉しいです。
注)このプログラム中に出て来る「難易度選択」画面にある「reset」ボタンを初回に押した時、またはプログラムを終了した時に「scoredate.ini」というハイスコア記録用ファイルが自動作成されます。「reset」を押してこのファイルを作っておくとハイスコアが自動的に記録されます。
それでは以下、プログラム本文です。 ’------------------------------------------------------------- '次々に表示される色を記憶するゲーム(ありがち)
'終了処理 終了ラベルに、終了処理設定。
'母艦の設定 母艦の、タイトルは、「MEMORIZE COLOR」'私的命名。変えてもいいです。 母艦の、幅は、300 母艦の、高さは、170 母艦の、リサイズは、オフ
'タイトル画面の作成(無くてもいいです。) 5で、画面フェードアウト タイトル色判定=0 6回 ( センタリング (0、50)へ、移動 文字サイズ=20 もし、タイトル色判定=0ならば、タイトル色=赤色 もし、タイトル色判定=1ならば、タイトル色=青色 もし、タイトル色判定=2ならば、タイトル色=黄色 もし、タイトル色判定=3ならば、タイトル色=緑色 もし、タイトル色判定=4ならば、タイトル色=茶色 もし、タイトル色判定=5ならば、タイトル色=紫色 文字色=タイトル色 「MEMORIZE」と、表示 「COLOR」と、表示 0.2秒、待つ タイトル色判定=タイトル色判定+1 黒色で、画面クリア )
'難易度選択画面の作成 *リセット地点 (0,5)へ、移動 センタリング 文字色=白色 文字サイズ=13 「難易度選択」と、表示 センタリング解除 文字サイズ=9 初級ボタンを、ボタンとして、作成 その、テキストは、「初級」 その、Xは、5 その、Yは、30 その、幅は、35 その、イベントは、初級レベル (45、35)へ、移動 「色は4色です。まずはこれから。」と、表示 中級ボタンを、ボタンとして、作成 その、テキストは、「中級」 その、Xは、5 その、Yは、65 その、幅は、35 その、イベントは、中級レベル (45、70)へ、移動 「色が6色になります。」と、表示 上級ボタンを、ボタンとして、作成 その、テキストは、「上級」 その、Xは、5 その、Yは、100 その、幅は、35 その、イベントは、上級レベル (45、105)へ、移動 「色が6色になり、色表示の間隔が短くなります。」と、表示 スコア初期化ボタンを、ボタンとして、作成 その、Xは、5 その、Yは、140 その、幅は、35 その、高さは、20 その、テキストは、「reset」 その、イベントは、ハイスコア初期化 (45、145)へ、移動 文字サイズ=8 文字色=赤色 「ハイスコアをリセットします。」と、表示 待機
*初級レベル 難易度=初級 q=4 p=0 h=0 オブジェクト全破壊 ワープ1へ、飛ぶ
*中級レベル 難易度=中級 q=6 p=0 h=1 オブジェクト全破壊 ワープ1へ、飛ぶ
*上級レベル 難易度=上級 q=6 p=1 h=1 オブジェクト全破壊
*ワープ1 '変数の設定 t=4 n=0 k=0 選択色=「」 背景色#0=赤色 背景色#1=青色 背景色#2=黄色 背景色#3=緑色 背景色#4=紫色 背景色#5=茶色
'INI読む 『scoredate.ini』の、INIファイル開く もし、難易度=初級ならば、(『スコアデータ』の、『初級ハイスコア』を、INIファイル読む) もし、難易度=中級ならば、(『スコアデータ』の、『中級ハイスコア』を、INIファイル読む) もし、難易度=上級ならば、(『スコアデータ』の、『上級ハイスコア』を、INIファイル読む) ハイスコア=それ INIファイル閉じる
'画面の設定 レベル=1 スコア=0 黒色で、画面クリア ペン色=RGB(80,80,80) (40、25)から、(125、85)へ、四角形。 (170、10)へ、移動 文字サイズ=11 文字色=白色 「難易度 {難易度}」と、表示 「現在のレベル」と、表示 レベル表示を、ラベルとして、作成 その、テキストは、レベル 「現在のスコア」と、表示 スコア表示を、ラベルとして、作成 その、テキストは、スコア 「ハイスコア」と、表示 ハイスコア表示を、ラベルとして、作成 その、テキストは、ハイスコア
'ボタンの設定 *返り点 開始ボタンを、ボタンとして、作成。 その、テキストは、「レベル{レベル}開始」 その、Xは、22 その、Yは、115 その、幅は、120 その、イベントは、ゲーム開始 待機
'イベント部分 *ゲーム開始 開始ボタンの、オブジェクト破壊。 t回 ( c=乱数(q)。 塗り色=背景色#c 色データ#n=塗り色 (40、25)から、(125、85)へ、四角形。 n=n+1 もし、p=0ならば、0.8秒、待つ もし、p=1ならば、0.4秒、待つ 塗り色=黒色 (40、25)から、(125、85)へ、四角形。 もし、p=0ならば、0.8秒、待つ もし、p=1ならば、0.4秒、待つ )
'?色目の色は?の表示 回数ラベルを、ラベルとして、作成 その、Xは、1 その、Yは、125 その、フォント色は、白色
*手動ループ '--------------------------------------------- '?回(命令) の繰り返しの中ではラベルが使えないようなので '私的命名「手動ループ」(笑)を、使用しています。 '変数で繰り返しを設定しています。 '--------------------------------------------- 回数ラベルの、テキストは、「{k+1}色目の色は?」 ' 解答ボタンの作成 赤ボタンを、ボタンとして、作成 その、テキストは、「赤」 その、Xは、5 その、Yは、145 その、幅は、20 その、高さは、20 その、イベントは、赤ボタンPUSH
青ボタンを、ボタンとして、作成 その、テキストは、「青」 その、Xは、32 その、Yは、145 その、幅は、20 その、高さは、20 その、イベントは、青ボタンPUSH
黄ボタンを、ボタンとして、作成 その、テキストは、「黄」 その、Xは、59 その、Yは、145 その、幅は、20 その、高さは、20 その、イベントは、黄ボタンPUSH
緑ボタンを、ボタンとして、作成 その、テキストは、「緑」 その、Xは、86 その、Yは、145 その、幅は、20 その、高さは、20 その、イベントは、緑ボタンPUSH
もし、h=1ならば、 ( 紫ボタンを、ボタンとして、作成 その、テキストは、「紫」 その、Xは、113 その、Yは、145 その、幅は、20 その、高さは、20 その、イベントは、紫ボタンPUSH
茶ボタンを、ボタンとして、作成 その、テキストは、「茶」 その、Xは、140 その、Yは、145 その、幅は、20 その、高さは、20 その、イベントは、茶ボタンPUSH ) 待機
*赤ボタンPUSH a=赤色 ワープ2へ、飛ぶ *青ボタンPUSH a=青色 ワープ2へ、飛ぶ *黄ボタンPUSH a=黄色 ワープ2へ、飛ぶ *緑ボタンPUSH a=緑色 ワープ2へ、飛ぶ *紫ボタンPUSH a=紫色 ワープ2へ、飛ぶ *茶ボタンPUSH a=茶色
*ワープ2 赤ボタンの、オブジェクト破壊 青ボタンの、オブジェクト破壊 黄ボタンの、オブジェクト破壊 緑ボタンの、オブジェクト破壊 もし、h=1ならば、 ( 紫ボタンの、オブジェクト破壊 茶ボタンの、オブジェクト破壊 ) もし、色データ#k=aならば、 ( 回数ラベルの、テキストは、「正解」 0.8秒、待つ スコア=スコア+10。 スコア表示の、テキストは、スコア k=k+1 ) 違えば、 ( 回数ラベルの、テキストは、「残念、再チャレンジ」 0.8秒、待つ ゲームオーバーへ、飛ぶ ) もし、k<tならば、手動ループへ、飛ぶ n=0 k=0 t=t+1 レベル=レベル+1 レベル表示の、テキストは、レベル 回数ラベルの、オブジェクト破壊 返り点へ、飛ぶ
*ゲームオーバー ハイスコアINI記録を、呼ぶ 「再チャレンジしますか?」と、二択 もし、それが、はいならば、 ( t=4 n=0 k=0 スコア=0 レベル=1 スコア表示の、テキストは、スコア レベル表示の、テキストは、レベル 黒色で、画面クリア オブジェクト全破壊 リセット地点へ、飛ぶ ) 違えば、終わり
*ハイスコアINI記録 もし、スコア>ハイスコアならば、 ( 『scoredate.ini』の、INIファイル開く それ=スコア もし、難易度=初級ならば(『スコアデータ』の、『初級ハイスコア』へ、INIファイル書く) もし、難易度=中級ならば(『スコアデータ』の、『中級ハイスコア』へ、INIファイル書く) もし、難易度=上級ならば(『スコアデータ』の、『上級ハイスコア』へ、INIファイル書く) INIファイル閉じる ) 戻る
*ハイスコア初期化 「ハイスコアをリセットしますか?」と、二択 もし、それが、はいならば、 ( 『scoredate.ini』の、INIファイル開く それ=0 『スコアデータ』の、『初級ハイスコア』へ、INIファイル書く 『スコアデータ』の、『中級ハイスコア』へ、INIファイル書く 『スコアデータ』の、『上級ハイスコア』へ、INIファイル書く INIファイル閉じる 「ハイスコアをリセットしました。」と、言う ) 待機 違えば、待機
*終了ラベル ハイスコアINI記録を、呼ぶ おわり
|
|