ひまわりユーザー プログラム掲示板 バックアップ
注意
ひまわりのススメ  □ ひまわり本家Home  □ 新着記事  □ 新規投稿  □ SEARCH  □ 参考プログラム集
ツリー表示

MESSAGE クレー射撃 /山本 博信 (02/04/29(Mon) 15:11) [808]
......MESSAGE Re[1]: クレー射撃 /しばた (02/04/29(Mon) 22:03) [810]
......MESSAGE 一部数値修正 /山本 博信 (02/04/30(Tue) 06:08) [812]
............MESSAGE またまた、不具合修正 /山本 博信 (02/05/01(Wed) 19:38) [822]
..................MESSAGE さらに・・・・トホホホホ /山本 博信 (02/05/04(Sat) 16:08) [848]


親記事 / ▼[ 810 ] ▼[ 812 ]
NO.808  クレー射撃
□投稿者/ 山本 博信 -(2002/04/29(Mon) 15:11:54)
□U R L/
{---プログラム掲示板投稿フォーム---
【ソフト名】クレー射撃(バージョン 1.03)
【作 成 者】山本 博信(連絡先:minus-zero@kcc.zaq.ne.jp)
【種  別】フリーソフトウェア
【ひまわりのバージョン】ver.1.45
【転  載】可(転載条件:ご自由に)
【改変運用】可
【ひまわり本体への梱包】可
【実行時に利用作成するファイル】有クレー射撃.ini
【コメント】マウスクリックで標的を落とすゲームです。

画像ファイルがいくつか必要ですが、画像無いと自動的に私のYahooブリーフケースにアクセスしますので、そこにある画像を使用してください。
画像入手後は、画像なしとブラウザしまいラベルは削除していただいて結構です。

一応ある程度テストしたつもりですが、初心者なので当てになりません。
人様のPC上で、ちゃんと動くかと、ドキドキしてます。

/*-----------------------------------------------------------------*/

じつは、しばらくほったらかしだったのですが。
バージョン1.49で開くと、動作が全然駄目です。
ゲームになりません。
ためしにバージョン1.45で開くと、うまく行きます。
原因調査は、少し先になると思います。
ご迷惑をおかけして、済みませんです・・・

/*-----------------------------------------------------------------*/
---投稿フォームここまで---}
母艦の、タイトルは、「クレー射撃」
母艦の、Xは、210
母艦の、Yは、150
母艦の、幅は、534
母艦の、高さは、320
母艦の、リサイズは、オフ。
母艦の、クリックした時は、射撃。
{オブジェクト設定}
   玉を、イメージとして、作成。'このゲームの標的、これをマウスクリックで落とす。
         その、透過処理は、オン。
         その、可視は、オフ。
         その、クリックした時は、命中。
   光線を、イメージとして、作成。'マウスクリックした時出るレーザービーム
         その、透過処理は、オン。
         その、可視は、オフ。
         その、拡大機能を、オンに、設定。
   破片を、イメージとして、作成。'見事命中した時の画像
         その、透過処理は、オン。
         その、可視は、オフ。
         その、拡大機能は、オン。
   GOを、ボタンとして、作成。'これをくりっくすると的が飛んでくる
         その、Xは、230
         その、Yは、300
         その、イベントは、発射。
   パネル1を、パネルとして、作成。
         その、可視は、オフ。
         その、サイズは、(0,0,300,250)
   フォーム1を、フォームとして、作成。
         その、可視は、オフ。
         その、スタイルは、枠なし。
         その、Yは、(デスクトップの高さ/4)   
         その、幅は、300
         その、高さは、250
   字幕を、イメージとして、作成。
      画像無しに、エラー処理設定。'画像読込エラー時
         その、画像は、「Ready.jpg」
      エラーを警告。'エラー処理を通常に戻す
         その、拡大機能は、オン。
         その、サイズは、(0,0,300,250)
   背景色選択を、ボタンとして、作成。
         その、サイズは、(10,30,290,60)
         その、イベントは、(色選択。
もし、それ=「」ならば、後ろの色=水色。
                   違えば、後ろの色=それ。)
   背景に画像を使うを、ボタンとして、作成。
         その、サイズは、(10,75,290,105)
         その、イベントは、画像選び。
   背景画像キャンセルを、ボタンとして、作成。
         その、サイズは、(10,120,290,150)
         その、イベントは、(
                        それ=「」
                        『クレー射撃.ini』の、INIファイル開く。
                           『背景』の、『画像』へ、INIファイル書く。
                           INIファイル閉じる
                           「背景画像をキャンセルしました」と、言う。
                        戻る。)
   ハイスコア変更を、ボタンとして、作成。
         その、サイズは、(10,165,290,195)
         その、イベントは、ちぇんじー。
   設定完了を、ボタンとして、作成。
         その、サイズは、(10,210,290,240)
         その、イベントは、(
                  フォーム1の、可視は、オフ。
                  字幕の、可視は、オン。
                  パネル1の、可視は、オフ。
                  掲示板の、可視は、オン。
               待機。)
   背景色選択を、パネル1の上へ、乗せ換える。
   背景に画像を使うを、パネル1の上へ、乗せ換える。
   背景画像キャンセルを、パネル1の上へ、乗せ換える。
   ハイスコア変更を、パネル1の上へ、乗せ換える。
   設定完了を、パネル1の上へ、乗せ換える。
   字幕を、フォーム1の上へ、乗せ換える。
   パネル1を、フォーム1の上へ、乗せ換える。
   
{ここから得点掲示板}
   ラベル1を、ラベルとして、作成。
         その、Xは、10。その、Yは、10。
         その、テキストは、「ただいまの得点」。
   ラベル2を、ラベルとして、作成。
         その、Xは、125。その、Yは、10。
         その、テキストは、「 残弾数」。
   得点表を、エディタとして、作成。
         その、Xは、10。その、Yは、35。
         その、幅は、100
         その、編集は、オフ。
   残弾表を、エディタとして、作成。
         その、Xは、140。その、Yは、35。
         その、幅は、100
         その、編集は、オフ。
   ゲーム開始を、ボタンとして、作成。
         その、Xは、10。その、Yは、65。
         その、イベントは、はじまりー。
   (その、右側)に、いろいろ変更を、ボタンとして、作成。
         その、イベントは、オプション。
   (ゲーム開始の、下側)に、ゲーム中断を、ボタンとして、作成。
         その、有効は、オフ。
         その、イベントは、中止。
   (その、右側)に、" すべて終了 "を、ボタンとして、作成。
         その、イベントは、(
         「ゲームを完全に終了します\nまたチャレンジしてね」と、言う。
         終わり。)
   掲示板を、フォームとして、作成。
         その、Xは、30。その、Yは、5。
         その、幅は、250
         その、高さは、105
         その、スタイルは、枠なし
         その、背景色は、緑色。
         その、可視は、オフ。
   
   ラベル1を、掲示板の上へ、乗せ換える。
   ラベル2を、掲示板の上へ、乗せ換える。
   得点表を、掲示板の上へ、乗せ換える。
   残弾表を、掲示板の上へ、乗せ換える。
   ゲーム開始を、掲示板の上へ、乗せ換える。
   いろいろ変更を、掲示板の上へ、乗せ換える。
   ゲーム中断を、掲示板の上へ、乗せ換える。
   " すべて終了 "を、掲示板の上へ、乗せ換える。

   掲示板の、可視は、オン。
後ろの色=水色

待機。

*オプション
   掲示板の、可視は、オフ。
   字幕の、可視は、オフ。
   フォーム1の、可視は、オン。
   パネル1の、可視は、オン。
待機。

*画像選び
   「ゲームウィンドウの背景に画像を使うことができます」と、言う。
   「JPEGファイル|*.jpg;*.jpeg|BMPファイル|*.bmp|PNGファイル|*.png」の、
   読込ファイル選択。
『クレー射撃.ini』の、INIファイル開く。
   『背景』の、『画像』へ、INIファイル書く。
INIファイル閉じる
待機。

*ちぇんじー
   「ハイスコアの内容を編集しますか?」と、二択。
   もし、それが、はいならば、(
   『クレー射撃.ini』の、INIファイル開く。
      「名前を書いてください」と、尋ねる。
         もし、それ=「」ならば、「現状のままで登録します」と、言う。
         違えば、
         『ハイスコア』の、『氏名』へ、INIファイル書く。
         「点数を書いてください」と、尋ねる。
         もし、それ=「」ならば、「現状のままで登録します」と、言う。
         違えば、
         『ハイスコア』の、『点数』へ、INIファイル書く。
         INIファイル閉じる
         )
戻る。
*はじまりー
   ゲーム開始の、有効は、オフ。
   いろいろ変更の、有効は、オフ。
   ゲーム中断の、有効は、オン。
   " すべて終了 "の、有効は、オフ。
GOの、有効は、オン。

{変数初期化}
   発射可=0
   弾数=50
   得点=0
   ボーナス=0
   メッセージ=0
   
   得点を、9桁で、右寄せ。
   得点表の、テキストは、それ&『点』。
   弾数を、9桁で、右寄せ。
   残弾表の、テキストは、それ&『発』。
   
『クレー射撃.ini』の、INIファイル開く。
   『ハイスコア』の、『氏名』を、INIファイル読む。
      もし、それ=「」ならば、(それ=名無し。
         『ハイスコア』の、『氏名』へ、INIファイル書く。
         ネーム=それ。)
      違えば、ネーム=それ。
   
   『ハイスコア』の、『点数』を、INIファイル読む。
      もし、それ=「」ならば、(それ=1800。
         『ハイスコア』の、『点数』へ、INIファイル書く。
         最高点=それ。)
      違えば、最高点=それ。
   『背景』の、『画像』を、INIファイル読む。
         もし、それ=「」ならば、後ろの色で、画面クリア。
         違えば、(
         母艦背景=それ
      画像エラーに、エラー処理設定。
         (0,0)へ、移動。
         母艦背景を、(534,320)で、画像拡大表示。
      エラーを警告。
      )
INIファイル閉じる

   最高点を、数値として扱う。
   
「現在のハイスコアは{ネーム}さんの{最高点}点です」と、言う。
   フォーム1の、可視は、オン。
      1秒、待つ。
   フォーム1の、可視は、オフ。
母艦浮上。
待機。

*中止
   「ゲームを止めますか?」と、二択。
   もし、それが、はいならば、(
      母艦の、可視は、オフ。
      ゲーム中断の、有効は、オフ。
      得点評価を、呼ぶ。
      待機。
      )
   違えば、戻る。
*発射
   GOの、有効は、オフ。
   発射可=1
   ラベル1の、テキストは、「ただいまの得点」。
   
   玉Y=150+(乱数(20)-10)*10'標的の出現高さの設定
   玉の、Yは、玉Y
   玉の、可視は、オン。
   
{得点が上がると難易度が高くなるよう、設定する}
   もし、得点<1000ならば、(
      M=170'M*N+弾の幅=母艦の幅にする。Nが大きいほどスピードが出る
      N=3
      K=100'カーブの仕方を決める変数・プラスなら下マイナスなら上へ・絶対値が小さいほど良く曲がる
      B=12'これで鳥やUFOの出現率が決まる
      )
      違えば、(もし、(得点>=1000)かつ、(得点<3000)ならば(
         M=102
         N=5
         K=(乱数(30)-15)*7
         もし、K>=0ならば、K=K+1'0による除算の回避
         B=9
         )
         違えば、(もし、(得点>=3000)かつ、(得点<5000)ならば、(
            M=68
            N=7.5
            K=(乱数(30)-15)*5
            もし、K>=0ならば、K=K+1'0による除算の回避
            B=6
            )
            違えば、M=51
               N=10
               K=(乱数(30)-15)*4
               もし、K>=0ならば、K=K+1'0による除算の回避
               B=4
            )
         )
{標的以外に鳥やUFOも出現する}
   乱数(Bの)
   T=それ
もし、T>=2ならば、(
  玉の、画像を、「玉.png」に、設定。
   玉の、幅は、24。その、高さは、16。
      
      P=乱数(2)'右から出るか左から出るか
         もし、P=0ならば(
            Zを、0から、Mまで、繰り返す(
               玉X=Z*N
               玉の、Xは、玉X
               玉の、Yは、玉Y+Z*Z/K
               0.1秒、待つ)
            )
         違えば、(
         Zを、0から、Mまで、繰り返す(
               玉X=(M-Z)*N
               玉の、Xは、玉X
               玉の、Yは、玉Y+Z*Z/K
               0.1秒、待つ)
            )
         )
   違えば、(もし、T=1ならば、(
      P=乱数(2)'右から出るか左から出るか
         もし、P=0ならば、(
            玉の、画像を、「tori.png」に、設定。
            玉の、幅は、24。その、高さは、16。
            Zを、0から、51まで、繰り返す(
               玉X=Z*10
               玉の、Xは、玉X
            0.1秒、待つ)
            )
            違えば、(
               玉の、画像を、「tori2.png」に、設定。
               玉の、幅は、24。その、高さは、16。
               Zを、0から、51まで、繰り返す(
                  玉X=(51-Z)*10
                  玉の、Xは、玉X
                  0.1秒、待つ)
               )
            )
         違えば、(
            玉の、画像を、「UFO.png」に、設定。
            玉の、幅は、24。その、高さは、16。
            Q=(乱数(5)+3)*10'ジグザグの幅を決める変数
            S=(乱数(10)-5)'ジグザグの細かさ
            もし、S>=0ならば、S=S+1'0による除算の回避
            Zを、0から、104まで、繰り返す(
               玉X=Z*5
               玉の、Xは、玉X
               玉の、Yは、(玉の、Y)+10/S
               もし、((玉の、Y)>=玉Y+Q)または、((玉の、Y)<=玉Y-Q)ならば、S=S*(-1)'これでジグザグに飛ぶ
               0.1秒、待つ)
            )
         )
      玉の、可視は、オフ。
   発射可=0
      もし、弾数<=0ならば、ゲームオーバー。'これをどこに持って行くのが良いか?
      
   母艦の、可視は、オフ。
      フォーム1の、可視は、オン。'毎回Ready?と表示する
      フォーム1を、最前面。
      1.3秒、待つ。
   母艦を、最前面。
      フォーム1の、可視は、オフ。
   母艦の、可視は、オン。
      GOの、有効は、オン。
      戻る。

*射撃
   もし、弾数<=0ならば、戻る。'不正なクリックの防止
   
もし、発射可=1ならば、('GO押す前の射撃禁止

{マウスクリックしたが外れた時の処理}
   弾数=弾数-1
   弾数を、9桁で、右寄せ。
   残弾表の、テキストは、それ&『発』。
   
   mx=マウスX
   my=マウスY
   
   光が飛ぶを、呼ぶ。
   )
戻る。

*命中

   もし、弾数<=0ならば、戻る。'不正なクリックの防止
{見事命中したら}
    弾数=弾数-1
   弾数を、9桁で、右寄せ。
   残弾表の、テキストは、それ&『発』。
   
   mx=(玉の、X)+12'弾の真中に光線があたるよう調整する
   my=(玉の、Y)+8
   
   光が飛ぶを、呼ぶ。
   
玉の、可視は、オフ。
   もし、T=0ならば、得点=得点+500
      違えば、(
         もし、T=1ならば、得点=得点+400
         違えば、得点=得点+100
         )
      得点を、9桁で、右寄せ。
      得点表の、テキストは、それ&『点』。
   
発射可=0

{破片が落ちて行く}
   破片の、可視は、オン。
   破片の、画像は、「破片1.png」
   破片の、Xは、mx
   破片の、Yは、my
      Lを、0から、((320-my)/4)まで、繰り返す(
         破片Y=my+L*4
         破片の、Yは、破片Y。
         0.001秒、待つ。
         )
      破片の、可視は、オフ。
   
 もし、(得点>=1500)かつ(ボーナス=0)ならば、(
      ボーナス=1
      弾数=弾数+10
      ラベル1の、テキストは、「ボーナス!!」。
      )
   違えば、(もし、(得点>=3000)かつ(ボーナス=1)ならば、(
         ボーナス=2
         弾数=弾数+20
         ラベル1の、テキストは、「ボーナス!!」。)
      違えば、(もし(得点>=5000)かつ(ボーナス=2)ならば、(
            ボーナス=3
            弾数=弾数+30
            ラベル1の、テキストは、「ボーナス!!」。
            )
         )
      )
      弾数を、9桁で、右寄せ。
      残弾表の、テキストは、それ&『発』。
      
 もし、(得点>最高点)かつ(メッセージ=0)ならば、(
   「今ハイスコアを更新しました」と、言う。
   メッセージ=1
   )
      もし、弾数<=0ならば、ゲームオーバー。'これをどこに持って行くのが良いか?
{発射に戻ると見えなくなった玉が
端に行くまで待ってしまうので、
ゲーム進行を早めるための処理}
   母艦の、可視は、オフ。
      フォーム1の、可視は、オン。'毎回Ready?と表示する
      フォーム1を、最前面。
      1.3秒、待つ。
母艦を、最前面。
   フォーム1の、可視は、オフ。
   母艦の、可視は、オン。
   GOの、有効は、オン。
待機。
*光が飛ぶ
   {光線が飛ぶように演出}
   もし、mx=267ならば、(
      光線の、可視は、オン。
      {画像を設定してからサイズを決めないと、ちゃんとリサイズしない}
      光線の、画像は、「光線中t.png」。
      光線の、サイズは、(mx-20,my,mx+20,300)
      0.05秒、待つ。
      光線の、画像は、「光線中.png」。
      光線の、サイズは、(mx-20,my,mx+20,300)
      )
         違えば、(もし、mx>267ならば、(
            光線の、可視は、オン。
            光線の、画像は、「光線右t.png」。
            光線の、サイズは、(266,my,mx,300)
            0.1秒、待つ。
            光線の、画像は、「光線右.png」。
            光線の、サイズは、(266,my,mx,300)
         )
         違えば、(
            光線の、可視は、オン。
            光線の、画像は、「光線t.png」。
            光線の、サイズは、(mx,my,268,300)
            0.1秒、待つ。
            光線の、画像は、「光線.png」。
            光線の、サイズは、(mx,my,268,300)
         )
   )
   0.2秒、待つ。
   光線の、可視は、オフ。
戻る。
*ゲームオーバー
   母艦の、可視は、オフ。
   ゲーム中断の、有効は、オフ。
   「ゲームオーバーです」と、言う。
   得点評価を、呼ぶ。
待機。
*得点評価
   もし、得点>最高点ならば、(『クレー射撃.ini』の、INIファイル開く。
      「貴方がハイスコアです\n名前を書いてください」と、尋ねる。
         もし、それ=「」ならば、「{ネーム}のままで登録します」と、言う。
         違えば、
         『ハイスコア』の、『氏名』へ、INIファイル書く。
         それ=得点
         『ハイスコア』の、『点数』へ、INIファイル書く。
         INIファイル閉じる
         )
      違えば、(もし、得点<1500ならば「次はもっと頑張ろうね」と、言う。
            違えば、(もし、得点<3000ならば、「まだまだ上があるよ」と、言う。
               違えば、(もし、得点<5000ならば、「なかなか良い成績です」と、言う。
                  違えば、「すばらしい!!でも、ハイスコアじゃないね」と、言う。
                  )
               )
            )
   ゲーム開始の、有効は、オン。
   いろいろ変更の、有効は、オン。
   " すべて終了 "の、有効は、オン。
   得点表の、テキストは、「」。
   残弾表の、テキストは、「」。
戻る。
*画像エラー
 エラーを警告。
   「画像読み込みエラーです\n背景画像は表示されません」と、言う。
      後ろの色で、画面クリア。
    エラーから復帰。
*画像無し
エラーを警告。
   「このゲームに必要な画像ファイルが無いか又は壊れています\n画像はhttp://briefcase.yahoo.co.jp/hirowork2002に有ります」と、言う。
   「今すぐ画像を取に行きますか?」と、二択。
   もし、それが、はいならば、(
      オブジェクト全破壊。
       母艦最大化。
        母艦浮上。
         ブラウザ1を、ブラウザとして、作成。
            その、URLは、『http://briefcase.yahoo.co.jp/hirowork2002/
            その、サイズは、(10,10,(デスクトップの幅-20),(デスクトップの高さ-140))
               
         (ブラウザ1の、下側)に、おしまいを、ボタンとして、作成。
            その、クリックした時は、ブラウザしまい。
      待機。
      )
   違えば、「画像が無いとゲームが出来ません\n画像を入手してから始めて下さい」と、言う。
         おわり。
*ブラウザしまい
   「ダウンロードしたファイルを解凍し\nフォルダの中身をランタイムのパスにコピーしてからやり直して下さい」と、言う。
         おわり。




▲[ 808 ] / 返信無し
NO.810  Re[1]: クレー射撃
□投稿者/ しばた -(2002/04/29(Mon) 22:03:29)
□U R L/
すごい!完成度が高くてびっくり。また、
ひまわりの可能性が広がりましたね〜。



▲[ 808 ] / ▼[ 822 ]
NO.812  一部数値修正
□投稿者/ 山本 博信 -(2002/04/30(Tue) 06:08:08)
□U R L/
 しばた様早速のレスありがとうございます。 

光が飛ぶラベルの数値少し違っていましたので修正しました。



▲[ 812 ] / ▼[ 848 ]
NO.822  またまた、不具合修正
□投稿者/ 山本 博信 -(2002/05/01(Wed) 19:38:16)
□U R L/
 すみません、もっときちっとテストしておくべきでした
玉が飛んでる時に、ゲーム中断を押すと、次回ゲーム時GOボタンの有効がオフのままになってました。
又、背景色をキャンセルすると画面が真っ黒になってしまってたので、これも修正。
 その他、いくつか無駄な処理を削ったり、ちょっと数値を触りました。
すでにコピーされた方、ほんとに済みません



▲[ 822 ] / 返信無し
NO.848  さらに・・・・トホホホホ
□投稿者/ 山本 博信 -(2002/05/04(Sat) 16:08:56)
□U R L/
どんどん出てきます、バグが・・・・申し訳ございません
Ready?と表示される瞬間に、消えた母艦の背後に有る・・たとえば、ひまわりエディタ
をクリックするとその背後にReady?が隠れてしまってました。
くどい処理になりますがフォーム1を最前面途、挿入しときました
その他、少し・・です



- Child Tree -