プログラムの 中身 を 詳 しくみてみよう
野球ゲームのスクリプトについてスプライトごとに 解説 します。
-
概要
概要
大まかな内容
をクリックしてゲームを開始します。
下向き 矢印 キーを 押 すとピッチャーがボールを投げます。
スペースキーを 押 すとバットが回転します。
バットでボールを 打 つと 守備 モードになり、内野手、外野手がボールを 追 いかけます。
ボールの 状態 と最初に 触 れたものによって次のようなバッティング 結果 となります。
バッティングの 結果 が 表示 された後はどれかのキーを 押 すとバッティングモードに 戻 ります。
ボール
主な 動 き
- ピッチャーから投球 が送られてきたらピッチャーの 位置 からミットに向かって 移動 する。
- バットに当たらずに下の 端 までいったらバッティングモードのまま次の投球が送られてくるまで待つ。
バットに当たったら 守備 モードに 移 る。 - バットに当たったらその時のバットの角度と、ボールの角度から打球が 飛 ぶ方向を決定する。
- フライの 滞空 時間はランダムに決定する。
- 背景 が 守備 になったらまずはフライの 状態 で進み、一度着地した後はゴロで進む。
- フライの時にスタンド(茶色)に 触 れたらホームラン、 左右の 端 に 触 れたらファール、フライの落下地点で内野手や外野手に 触 れたらアウト。
ゴロの時にスタンド(茶色)に 触 れたら2 塁 打、左右の 端 に 触 れたらファール、 内野手に 触 れたらアウト、外野手に 触 れたらヒットになります。
がクリックされたとき
- フライの速さを「4」にします。
背景 がバッティングになったとき
- 一度、 非表示 にします。
投球を受け取ったとき
-
説明
-
ピッチャーから投球が送られてきたら、 ピッチャーの 位置 から下に向かって 移動 します。
バットに当たらずに下の 端 までいったら、バッティングモードのまま次の 投球が送られてくるまで待ちます。
バットに当たったら 守備 モードに 移 ります。
コードの 詳細
-
背景 が2( 守備 モード)である場合はこのスクリプトを止めて何もしません。
180度(下)に向けます。
y 座標 を170( 画面上 )にします。
x 座標 をピッチャーのx 座標 と同じ 位置 にします。
大きさを100%にして 表示 します。
打ったを0にします。下の 端 に 触 れるか 打ったが1になるまで(バットに当たるまで) 投球をくり返します。
投球を1回実行するごとにくり返すと 処理 が 遅 く、ボールの 動 きが 遅 くなるため、 1回のくり返しの中で投球を10回実行しています。
投球
-
説明
-
ミットに向かって進み、バットに当たったらボールの角度とバットの角度から 打った後のボールの角度を決定し、 守備 モードに 移 ります。
コードの 詳細
-
打ったが1である場合 (すでにバットに当たっている場合)は、このスクリプトを止めて何もしません。
ミットへ向けて1歩 動 かします。
もしバットに 触 れたら 打 つを実行して 背景 を 守備 にします。
打 つ
-
説明
-
打った後のボールの角度と 滞空 時間を決定します。
打った後のボールの角度はバットに当たる 瞬間 のボールの角度とバットの角度から決定します。
滞空 時間はランダムに決定します。 滞空 時間の 値 が大きい 程 、フライの 飛距離 が長くなります。
コードの 詳細
-
打ったを1にします。
ボールの向きを逆向き(180度回転)にします。
バットの 垂線 の角度をバットの向き-90度にします。
ボールの向きを バットの 垂線 の角度+( バットの 垂線 の角度-向き) にします。
打った後のボールの方向を少し自然にするためにボールの向き を左に10度回転させています。
滞空 時間を10から45までの 乱数 で決定しています。 滞空 時間が長いほどフライの 状態 が長くなります。
-
ボールの向き(170度)を180度回転=-10度
-
バットの 垂線 の角度(30度)-ボールの 向き(-10度)=40度
-
バットの 垂線 の角度(30度)+40度=ボールの 向き(70度)
-
70度-10度(左に10度回転)=打った後のボールの 向き(60度)
背景 が 守備 になったとき
-
説明
-
まずはフライの 状態 で進み、一度着地した後はゴロで進みます。
フライの落下地点で内野手や外野手に 触 れたらアウトです。
ゴロの時に内野手に 触 れたらアウト、外野手に 触 れたらヒットです。
フライの時にスタンド(茶色)に 触 れたらホームランです。
ゴロの時にスタンド(茶色)に 触 れたら2 塁 打です。左右の 端 に 触 れたらファールです。
コードの 詳細
-
バッティング 結果 、 着地を0にします。
x 座標 を0、 y 座標 を-160にします。
大きさを50%にしますフライを実行します。
フライの中で バッティング 結果 が出た場合(ホームランもしくはファールになった場合)はこのスクリプトを止めます。
着地を1にします。
着地した時点で内野手または 外野手に 触 れたらバッティング 結果 を2(アウト)にし、 守備完了 を送ってこのスクリプトを止めます。
まだバッティング 結果 が出ていない場合(0の場合)は ゴロを実行します。
フライ
-
説明
-
打ってから一度地面に落ちるまでの 動 きです。
フライの速さずつ 移動 します。
前半は 徐々 に大きくなっていき、後半は 徐々 に小さくなります(空中に上がってから落ちていきます)。
コードの 詳細
-
上昇 落下速度を3にします (1回のループで 変 わる高さ(ボールの見た目の大きさ)です)。
以下 のAの 処理 を2回くり返します。
- A :
滞空 時間の数だけ 以下 のBをくり返します。
上昇 落下速度に-1をかけます( 上昇 から落下に 変更 します)。 - B :
フライの速さだけ 動 かします。
大きさを 上昇 落下速度ずつ 変 えます。
もしスタンド(茶色)に 触 れたらバッティング 結果 を5(ホームラン)にし、 守備完了 を送ってこのスクリプトを止めます。
もし 端 に 触 れたらバッティング 結果 を1(ファール)にし、 守備完了 を送ってこのスクリプトを止めます。
ゴロ
-
説明
-
一度地面に落ちた後のボールの 動 きです。
内野手、外野手、スタンド、 端 のいずれかに 触 れるまで2ずつ 移動 します。
コードの 詳細
-
以下 のAの 処理 をずっとくり返します。
- A :
毎回2歩ずつ 動 かします。
内野手、外野手、スタンド、 端 のいずれかに 触 れたら、それに応じた バッティング 結果 にし、 守備完了 を送ってこのスクリプトを止めます。
触 れたものに対するバッティング 結果 は次のようにします。
バット
主な 動 き
- スペースキーが 押 されたら、180度から左に1度ずつ360回まわし、360度回転する。
背景 がバッティングになったとき
- x 座標 を-40、 y 座標 を-150にし、 向きを180度に向けて 表示 します。
背景 が 守備 になったとき
- 非表示 にします。
下向き 矢印 キーが 押 されたとき
- 向きを180度に向けます。
スペースキーが 押 されたとき
- まず180度に向けてから左に1度回すを15回実行し、それを24回くり返します
(360度回します)。
ミット
主な 動 き
- 画面下方 の中央の 位置 に 表示 し、ピッチャーから 投球が送られてきたら 水平移動 する。
背景 がバッティングになったとき
- x 座標 を-40、y 座標 を-150にし、 向きを180度に向けて 表示 します。
背景 が 守備 になったとき
- 非表示 にします。
投球を受け取ったとき
-
説明
-
ミットのx 座標 を中央からランダムな 位置 へ1秒間 移動 させます。
ミットが 移動 することにより、そこに向かってくるボールの 軌道 も変化します。
コードの 詳細
-
x 座標 を0、 y 座標 を-126にします。
移動後 のx 座標 を-30~54の 範囲 でランダムに決定します。
x 座標 を0から 移動後 のx 座標 まで1秒で 移動 させます。
ピッチャー
主な 動 き
- 背景 がバッティングの時のみ 表示 する。
- 下向き 矢印 キーが 押 されたら、中央から水平方向のランダムな 位置 へ 移動 してボールを投げる (投球を送って待つ)。
背景 がバッティングになったとき
- x 座標 を0、y 座標 を150にして 表示 します。
背景 が 守備 になったとき
- 非表示 にします。
下向き 矢印 キーが 押 されたとき
-
説明
-
x 座標 を中央からランダムな 位置 へ「0.5」秒間 移動 させてからボールを投げます。
コードの 詳細
-
移動後 のx 座標 を-30~30の 範囲 でランダムに決定します。
x 座標 を0から 移動後 の x 座標 まで0.5秒で 移動 させます。
ボールとミットへ投球を送って待ちます。
内野手
主な 動 き
- クローンを4つ作り、ファースト、サード、セカンド、ショートの 位置 に 配置 する。クローンではないオリジナルはピッチャーの 位置 に 配置 する。
- 打球がフライの間は着地点に向かって 移動 する。ただし、落下地点までの 距離 が100より近い場合のみで、それよりも遠い場合は 移動 しない。
- 打球がゴロになったらボールに向かって 移動 します。ただし、ボールまでの 距離 が150より近い場合のみで、それよりも遠い場合は 移動 しない。
がクリックされたとき
-
説明
-
クローンを4つ作り、ファースト、サード、セカンド、ショートの 位置 に 配置 します。
クローンではないオリジナルはピッチャーの 位置 に 配置 します。
最初に 配置 した 位置 ( 守備位置 )を 保存 しており、バッティングモードから 守備 モードに 移 った 際 に、 毎回 守備位置 に 戻 るようにします。
コードの 詳細
-
非表示 にします。
x 座標 を100、 y 座標 を-30にします。
クローンを作ります。(ファースト)
x 座標 に-1をかけます。
クローンを作ります。 (サード)
x 座標 を70、 y 座標 を20にします。
クローンを作ります。(セカンド)
x 座標 に-1をかけます。
クローンを作ります。(ショート)
x 座標 を0、y 座標 を-60にします。(ピッチャー)
守備位置 xを x 座標 にします。
守備位置 yをy 座標 にします。
クローンされたとき
- x 座標 、y 座標 を 守備位置 x、 守備位置 に 保存 し、 バッティングモードから 守備 モードに 移 った 際 に毎回 守備位置 に 戻 るようにします。
背景 が 守備 になったとき
-
説明
-
各 内野手をそれぞれの 守備位置 に 表示 し、ボールを 追 いかけます。
必要 な 処理
-
1. それぞれの 守備位置 に 表示 します。
2. 打球がフライの間は落下地点に向かって 移動 します。 ただし落下地点までの 距離 が100より近い場合のみで、それよりも遠い場合は 移動 しません。
3. 打球がゴロになったらボールに向かって 移動 します。 ただしボールまでの 距離 が150より近い場合のみで、それよりも遠い場合は 移動 しません。 コードの 詳細
-
x 座標 を 守備位置 x、 y 座標 を 守備位置 yにして 表示 します。
(最初に 配置 した 守備位置 に 表示 します)。
次にボールを 追 いかける 処理 のくり返しとなる、 以下 のAを開始します。
- A :
着地=0(フライの 状態 )で 落下地点までの 距離 が100より近い場合は 落下地点へ 移動 を実行します。
着地が0以外(ゴロの 状態 )で ボールまでの 距離 が150より近い場合は ボールを 追 うを実行します。
1回くり返すごとに0.01秒の 待機 時間を入れます。
落下地点へ 移動
-
説明
-
フライの落下地点に向かって 移動 します。
落下地点に 到達 したら止まり、 コスチュームをキャッチにします。
コードの 詳細
-
落下地点までの 距離 が3より近い(2 以下 )の場合はコスチュームを キャッチにします。
落下地点までの 距離 が3以上の場合はコスチュームを 移動 にし、 向きを落下地点へ向けて1歩 動 かします (ボールではなく落下地点に向かいます)。
ボールを 追 う
-
説明
-
ボールに向かって 移動 します。
コードの 詳細
-
コスチュームを 移動 にし、 向きをボールへ向けて1歩 動 かします。
守備完了 を受け取ったとき
- コスチュームをキャッチにします。
スプライトの他のスクリプトを止めます。
背景 がバッティングになったとき
- スプライトの他のスクリプトを止めて 非表示 にします。
外野手
主な 動 き
- クローンを2つ作り、レフト、ライトの 位置 に 配置 する。 クローンではないオリジナルはセンターの 位置 に 配置 する。
- 打球がフライの間は着地点に向かって 移動 する。 ただし落下地点までの 距離 が100より近い場合のみで、それよりも遠い場合は 移動 しない。
- 打球がゴロになったらボールに向かって 移動 します。 ただしボールまでの 距離 が150より近い場合のみで、それよりも遠い場合は 移動 しない。
がクリックされたとき
-
説明
-
クローンを2つ作り、ライト、レフトの 位置 に 配置 します。
クローンではないオリジナルはセンターの 位置 に 配置 します。
最初に 配置 した 位置 ( 守備位置 )を 保存 しており、 バッティングモードから 守備 モードに 移 った 際 に、毎回 守備位置 に 戻 るようにします。
コードの 詳細
-
非表示 にします。
x 座標 を140、 y 座標 を80にします。
クローンを作ります。(ライト)
x 座標 に-1をかけます。
クローンを作ります。(レフト)
x 座標 を0、 y 座標 を120にします。(センター)
守備位置 xをx 座標 にします。
守備位置 yをy 座標 にします。
クローンされたとき
- x 座標 、 y 座標 を 守備位置 x、 守備位置 yに 保存 し、 バッティングモードから 守備 モードに 移 った 際 に毎回 守備位置 に 戻 るようにします。
背景 が 守備 になったとき
-
説明
-
各 外野手をそれぞれの 守備位置 に 表示 し、ボールを 追 いかけます。
必要 な 処理
-
1.それぞれの 守備位置 に 表示 します。
2.打球がフライの間は落下地点に向かって 移動 します。 ただし落下地点までの 距離 が100より近い場合のみで、それよりも遠い場合は 移動 しません。
3.打球がゴロになったらボールに向かって 移動 します。 ただしボールまでの 距離 が150より近い場合のみで、それよりも遠い場合は 移動 しません。 コードの 詳細
-
x 座標 を 守備位置 x、 y 座標 を 守備位置 yにして 表示 します。
(最初に 配置 した 守備位置 に 表示 します)。
次にボールを 追 いかける 処理 のくり返しAを開始します。
- A :
着地=0(フライの 状態 )で 落下地点までの 距離 が100より近い場合は 落下地点へ 移動 を実行します。
着地が0以外(ゴロの 状態 )で ボールまでの 距離 が150より近い場合は ボールを 追 うを実行します。
1回くり返すごとに0.01秒の 待機 時間を入れます。
落下地点へ 移動
-
説明
-
フライの落下地点に向かって 移動 します。
落下地点に 到達 したら止まり、 コスチュームをキャッチにします。
コードの 詳細
-
落下地点までの 距離 が 3より近い(2 以下 )の場合はコスチュームを キャッチにします。
落下地点までの 距離 が 3以上の場合はコスチュームを 移動 にし、 向きを落下地点へ向けて1歩 動 かします(ボールではなく落下地点に向かいます)。
ボールを 追 う
-
説明
-
ボールに向かって 移動 します。
コードの 詳細
-
コスチュームを 移動 にし、 向きをボールへ向けて1歩 動 かします。
守備完了 を受け取ったとき
- コスチュームをキャッチにします。
スプライトの他のスクリプトを止めます。
背景 がバッティングになったとき
- スプライトの他のスクリプトを止めて 非表示 にします。
落下地点
ボールが落ちる場所に 配置 します。ボールがフライの 状態 の間、 野手はボールではなくこの落下点に向かって 移動 するようにします。
主な 動 き
- 打った場所からボールと同じ方向にフライの速さ× 滞空 時間×2歩だけ 動 かす (フライの落下地点に 移動 する)。
- 常に 非表示 にする。
背景 がバッティングになったとき
- 非表示 にします。
背景 が 守備 になったとき
- 非表示 にします。
x 座標 を0、 y 座標 を-160にします。
向きをボールと同じ向きにします。
フライの速さ× 滞空 時間×2歩 動 かします(フライの落下地点に 移動 します)。
結果
主な 動 き
- ボールから 守備完了 が送られてきたら バッティング 結果 に 対応 したコスチュームで 表示 する。
- どれかのキーが 押 されるまで 表示 し、キーが 押 されたら 非表示 にして 背景 をバッティングにする。
背景 がバッティングになったとき
- 非表示 にします。
背景 が 守備 になったとき
- 非表示 にします。
守備完了 を受け取ったとき
- x 座標 を0、 y 座標 を-120にします。
コスチュームをバッティング 結果 に 合わせて 変更 して 表示 します。
どれかのキーが 押 されるまで 結果 を 表示 したまま待ちます。
キーが 押 されたら 非表示 にして 背景 をバッティングにします。