{---プログラム掲示板投稿フォーム--- 【ソフト名】ボタン崩し (バージョン 1.00) 【作 成 者】のぐちゃん (連絡先:kazutosi101@msn.com) 【種 別】フリーソフトウェア 【ひまわりのバージョン】ver.1.34 【転 載】可(転載条件:ご自由に) 【改変運用】可(投稿したプログラムを他人が改造し運用することを許すか) 【ひまわり本体への梱包】可 【実行時に利用作成するファイル】有(scoredata.ini←プログラムが勝手に作成します) 【コメント】←→で左右移動、スペースキーまたはEnterキーでボールの発射です。ボールを跳ね返す時バーの端のほうで打ち返すとボールの軌道や速さがランダムに変化します。 ---投稿フォームここまで---} '母艦の設定 終了ラベルに、終了処理設定 白色で、画面クリア 母艦の、タイトルは、「ボタン崩し」 母艦の、幅は、200 母艦の、高さは、300 母艦の、リサイズは、オフ 母艦の、キー押した時を、キーイベントに、設定 文字サイズ=20 母艦の、(20,60)へ、「ボタン崩し」と、文字描画 文字サイズ=9 文字書体=「MS ゴシック|傾斜」 母艦の、(65,170)へ、「ロード中...」と、文字描画 文字書体=「MS ゴシック」 母艦の、(40,200)へ、「日本語入力システム\nをオフにしましょう」と、文字描画 0.001秒、待つ
クリア回数=0 スコア=0 基本速度=4 文字書体=「MS Pゴシック」 青色で、画面クリア '背景描画 100回( 文字色=RGB(乱数(256),乱数(256),乱数(256)) 位置=「({乱数((母艦の、幅))},{乱数((母艦の、高さ))+20})」 母艦の、位置へ、「ボタン崩し」と、文字描画。 )
*リトライ
'キー設定 右キー=39 左キー=37 発射キー=32
'変数設定 自機X=80 自機Y=260 ボールX=97 ボールY=252 ボール状態=0 ボール発射=オフ ブロック番号=0 ブロックX=33 ブロックY=50 ブロック色=赤色 色カウンタ=0 残りブロック数=21 COMBO=1 反射回数=0 ベクトルX=基本速度/2 ベクトルY=基本速度/2
'INIの設定 『scoredata.ini』の、INIファイル開く 『score』の、『hi-score』を、INIファイル読む ハイスコア=それ INIファイル閉じる
'スコアラベルの作成 スコアラベルを、ラベルとして、作成 その、フォント色は、白色 その、テキストは、「スコア:{スコア}」 その、フォントサイズは、10 その、Yは、2
'ハイスコアラベルの作成 ハイスコアラベルを、ラベルとして、作成 その、フォント色は、白色 その、テキストは、「ハイスコア:{ハイスコア}」 その、フォントサイズは、10 その、Xは、110 その、Yは、2
'COMBOラベルの作成 COMBOラベルを、ラベルとして、作成 その、フォント色は、白色 その、テキストは、「{COMBO}回、COMBO!」 その、フォントサイズは、9 その、Xは、150 その、Yは、30 その、可視は、オフ
'枠線描画 ペン色=白色 (0,20)へ、移動 (200,20)へ、線
'バーの作成 自機バーを、ラベルとして、作成 その、テキストは、「|〓〓〓|」 その、フォント色は、赤色 その、フォントサイズは、8 その、Xは、自機X その、Yは、自機Y
'ボールの作成 ボールを、ラベルとして、作成 その、テキストは、「●」 その、フォント色は、黄色 その、フォントサイズは、8 その、Xは、ボールX その、Yは、ボールY
'ブロックの作成 ブロックX=33 ブロックY=50 21回( 「ブロック{ブロック番号}を、ボタンとして、作成」を、ひまわりする その、テキストは、「■」 その、フォントサイズは、12 その、フォント色は、ブロック色 その、幅は、20。 その、高さは、20。 その、Xは、ブロックX その、Yは、ブロックY 判定X#ブロック番号=ブロックX 判定Y#ブロック番号=ブロックY ブロック番号=ブロック番号+1 ブロックX=ブロックX+20 '7個並べたら次の行に移る。 もし、ブロック番号%7=0ならば、( もし、色カウンタ=0ならば、ブロック色=黄色 もし、色カウンタ=1ならば、ブロック色=青色 ブロックX=33 ブロックY=ブロックY+20 色カウンタ=1 ) )
待機
*キーイベント
'左右移動設定 もし、押されたキーが、右キーならば、( 自機X=自機X+10 もし、自機X>160ならば、自機X=160 自機バーの、Xは、自機X ボール状態で、条件分岐。 右上の時、ボール移動右上 右下の時、ボール移動右下 左上の時、ボール移動左上 左下の時、ボール移動左下 0の時、( ボールX=ボールX+10 もし、ボールX>178ならば、ボールX=178 ボールの、Xは、ボールX ) 待機 ) もし、押されたキーが、左キーならば、( 自機X=自機X-10 もし、自機X<0ならば、自機X=0 自機バーの、Xは、自機X ボール状態で、条件分岐。 右上の時、ボール移動右上 右下の時、ボール移動右下 左上の時、ボール移動左上 左下の時、ボール移動左下 0の時、( ボールX=ボールX-10 もし、ボールX<18ならば、ボールX=18 ボールの、Xは、ボールX ) 待機 )
'ボールの発射 もし、押されたキーが、発射キーならば、( もし、ボール発射=オフならば、( ボール発射=オン ボール移動右上 ) 違えば、戻る ) 戻る
*ボール移動右上 ボールの、テキストは、「↑」。 ボール状態=右上 ボールX=ボールX+ベクトルX ボールY=ボールY-ベクトルY もし、(ボールY<100)かつ(ボールY>40)ならば、接触判定 もし、ボールX>195ならば、( 反射回数=反射回数+1 もし、反射回数%10=0ならば、基本速度=基本速度+1 ボール移動左上 ) もし、ボールY<20ならば、( 反射回数=反射回数+1 もし、反射回数%10=0ならば、基本速度=基本速度+1 ボール移動右下 ) ボールの、Xは、ボールX ボールの、Yは、ボールY 0.001秒、待つ ボール移動右上
*ボール移動右下 ボールの、テキストは、「↓」。 ボール状態=右下 ボールX=ボールX+ベクトルX ボールY=ボールY+ベクトルY もし、(ボールY<100)かつ(ボールY>40)ならば、接触判定 もし、ボールX>195ならば、( 反射回数=反射回数+1 もし、反射回数%10=0ならば、基本速度=基本速度+1 ボール移動左下 ) もし、(自機X-5<ボールX)かつ(自機X+46>ボールX)ならば、( もし、(自機Y-4<ボールY)かつ(自機Y>ボールY)ならば、( もし、(自機X+11<ボールX)かつ(自機X+30>ボールX)でなければ、( ベクトルX=基本速度-乱数(基本速度) ベクトルY=基本速度-ベクトルX もし、ベクトルY<1ならば、ベクトルY=1 ) COMBOラベルの、可視は、オフ COMBO=1 反射回数=反射回数+1 もし、反射回数%10=0ならば、基本速度=基本速度+1 ボール移動右上 ) ) もし、ボールY>320ならば、ゲームオーバーへ、飛ぶ ボールの、Xは、ボールX ボールの、Yは、ボールY 0.001秒、待つ ボール移動右下
*ボール移動左上 ボールの、テキストは、「↑」。 ボール状態=左上 ボールX=ボールX-ベクトルX ボールY=ボールY-ベクトルY もし、(ボールY<100)かつ(ボールY>40)ならば、接触判定 もし、ボールX<0ならば、( 反射回数=反射回数+1 もし、反射回数%10=0ならば、基本速度=基本速度+1 ボール移動右上 ) もし、ボールY<20ならば、( 反射回数=反射回数+1 もし、反射回数%10=0ならば、基本速度=基本速度+1 ボール移動左下 ) ボールの、Xは、ボールX ボールの、Yは、ボールY 0.001秒、待つ ボール移動左上
*ボール移動左下 ボールの、テキストは、「↓」。 ボール状態=左下 ボールX=ボールX-ベクトルX ボールY=ボールY+ベクトルY もし、(ボールY<100)かつ(ボールY>40)ならば、接触判定 もし、ボールX<0ならば、( 反射回数=反射回数+1 もし、反射回数%10=0ならば、基本速度=基本速度+1 ボール移動右下 ) もし、(自機X-5<ボールX)かつ(自機X+46>ボールX)ならば、( もし、(自機Y-4<ボールY)かつ(自機Y>ボールY)ならば、( もし、(自機X+11<ボールX)かつ(自機X+30>ボールX)でなければ、( ベクトルX=基本速度-乱数(基本速度) ベクトルY=基本速度-ベクトルX もし、ベクトルY<1ならば、ベクトルY=1 ) COMBOラベルの、可視は、オフ COMBO=1 反射回数=反射回数+1 もし、反射回数%10=0ならば、基本速度=基本速度+1 ボール移動左上 ) ) もし、ボールY>320ならば、ゲームオーバーへ、飛ぶ ボールの、Xは、ボールX ボールの、Yは、ボールY 0.001秒、待つ ボール移動左下
*接触判定 nを、0から、20まで、繰り返す( もし、(判定X#n<ボールX)かつ(判定X#n+14>ボールX)ならば、( もし、(判定Y#n+2<ボールY)かつ(判定Y#n+12>ボールY)ならば、( 「ブロック{n}の、可視は、オフ」を、ひまわりする 判定X#n=300 スコア=スコア+10*COMBO スコアラベルの、テキストは、「スコア:{スコア}」 もし、COMBO>1ならば、(COMBOラベルの、可視は、オン。COMBOラベルの、テキストは、「{COMBO} COMBO!」) COMBO=COMBO+1 残りブロック数=残りブロック数-1 もし、残りブロック数=0ならば、クリアへ、飛ぶ 反射回数=反射回数+1 もし、反射回数%10=0ならば、基本速度=基本速度+1 ボール状態で、条件分岐 右上の時、ボール移動右下 右下の時、ボール移動右上 左上の時、ボール移動左下 左下の時、ボール移動左上 ) ) もし、(判定X#n+2<ボールX)かつ(判定X#n+12>ボールX)ならば、( もし、(判定Y#n<ボールY)かつ(判定Y#n+14>ボールY)ならば、( 「ブロック{n}の、可視は、オフ」を、ひまわりする 判定X#n=300 スコア=スコア+10*COMBO スコアラベルの、テキストは、「スコア:{スコア}」 もし、COMBO>1ならば、(COMBOラベルの、可視は、オン。COMBOラベルの、テキストは、「{COMBO} COMBO!」) COMBO=COMBO+1 残りブロック数=残りブロック数-1 もし、残りブロック数=0ならば、クリアへ、飛ぶ 反射回数=反射回数+1 もし、反射回数%10=0ならば、基本速度=基本速度+1 ボール状態で、条件分岐 右上の時、ボール移動左上 右下の時、ボール移動左下 左上の時、ボール移動右上 左下の時、ボール移動右下 ) ) ) 戻る
*クリア 文字サイズ=12 文字色=黒色 「クリア!(^o^)丿」と、言う オブジェクト全破壊 クリア回数=クリア回数+1 基本速度=4+クリア回数 リトライへ、飛ぶ
*ゲームオーバー ハイスコア保存 文字サイズ=70 文字色=赤色 「ゲームオーバー(×_×)」と、言う 文字サイズ=12 「再チャレンジ?」と、二択 もし、それが、はいならば、( スコア=0 基本速度=4 オブジェクト全破壊 リトライへ、飛ぶ ) 違えば、終わり
*ハイスコア保存 もし、スコア>ハイスコアならば、 ( 『scoredata.ini』の、INIファイル開く それ=スコア 『score』の、『hi-score』へ、INIファイル書く INIファイル閉じる ) 戻る
*終了ラベル ハイスコア保存 おわり |