ボール投げ


プログラムの 中身 ( なかみ ) を 詳 ( くわ ) しくみてみよう

右向き 矢印 ( やじるし ) ボタンを 押 ( お ) して助走し、スペースボタンを 押 ( お ) してボールを投げるゲームです。 それぞれのスプライトについて 解説 ( かいせつ ) します。

概要 ( がいよう )

大まかな内容

  • を 押 ( お ) して開始します。
  • キーボードの左右の 矢印 ( やじるし ) キーでボールを持った 猫 ( ねこ ) を動かし助走します。
    助走が長い 程 ( ほど ) 、投げた時のボールの速さを速くします。
    助走をまったくしない場合の速さは秒速14m、助走をすると 増 ( ふ ) えていき秒速28mを最大とします。
    一度右向き 矢印 ( やじるし ) キーを 離 ( はな ) したり左向き 矢印 ( やじるし ) キーを 押 ( お ) したりして止まったり、 左に進んだりしたら速さを秒速14mに 戻 ( もど ) します。
  • スペースキーを 押 ( お ) したらボールを投げます。
    スペースキーを 押 ( お ) したら助走をやめ、スペースキーを 離 ( はな ) したらボールを投げます。
    スペースキーを 押 ( お ) してから 離 ( はな ) すまでの時間で投げる方向(地面との角度)を決めます。
    押 ( お ) している時間が長いほど角度を大きくします。角度は9度から90度までとします。
  • ボールを投げる 際 ( さい ) に 猫 ( ねこ ) が 踏切線 ( ふみきりせん ) を 越 ( こ ) えていたらファールにします。
    ボールが最初に地面に着いた場所と 踏切線 ( ふみきりせん ) との 距離 ( きょり ) を 記録 ( きろく ) とします。
    ボールが最初に地面に着いたら 判定員 ( はんていいん ) がそこまで 移動 ( いどう ) し、 記録 ( きろく ) を言います。

ボールの動き方

  • 投げたときのボールの速さを上方向の速さと右方向の速さにわけます。
    例 ( たと ) えば投げた時のボールの速さが秒速28m、投げた角度が40度の場合は
    上方向(y方向)の速さが28×sin(40度)=秒速18m
    右方向(x方向)の速さが28×cos(40度)=秒速21.45mになります。
  • ボールのx 座標 ( ざひょう ) は右方向(x方向)の速さのぶんだけ 増 ( ふ ) やし続けます (右方向には一定の速度で 移動 ( いどう ) します)。
    ボールのy 座標 ( ざひょう ) はまず上方向(y方向)の速さのぶんだけ 増 ( ふ ) やし続けますが、 重力 加速 ( かそく ) 度(9.806m/s²)のぶんだけ上方向(y方向)の速さを 減 ( へ ) らしていきます。
    上方向(y方向)の速さは徐々に0になり、その後は下方向に速くなっていきます。
    y 座標 ( ざひょう ) は 減 ( へ ) り続け、地面に落ちて止まります。
    実際 ( じっさい ) に地球上でボールを投げた場合には空気 抵抗 ( ていこう ) などの 影響 ( えいきょう ) を受けますが、 本プログラムでは空気 抵抗 ( ていこう ) などの 影響 ( えいきょう ) はないものとしています。

Startボタン

主な動き

  • がクリックされたらコスチュームをStartにする。
  • クリックされたら各スプライトへStart を送り、 非 ( ひ ) 表示にする(各スプライト Startを受け取ってゲーム開始)。
  • ボールから 完了 ( かんりょう ) が送られてきたらコスチュームをRetryにして表示する。

がクリックされたとき

    • 説明 ( せつめい )
    • ゲームスタートの 準備 ( じゅんび ) をする。
    •  
    • 必要な 処理 ( しょり )
    • 座標 ( ざひょう ) の 初期化 ( しょきか )
      Startの 表示 ( ひょうじ )
      マウスポインターが上に乗ったとき色を 変 ( か ) える
    •  
    • コードの 詳細 ( しょうさい )
    • x 座標 ( ざひょう ) (横の 表示 ( ひょうじ ) 位置 ( いち ) )を0、 y 座標 ( ざひょう ) ( 縦 ( たて ) の 表示 ( ひょうじ ) 位置 ( いち ) )を40にします。

      コスチュームをStartにして 表示 ( ひょうじ ) します。 (ゲーム終了時は 非表示 ( ひひょうじ ) になっているため)

      マウスポインターがこのスプライトに 触 ( ふ ) れているときは色を 変 ( か ) え、 離 ( はな ) れたら元の色に 戻 ( もど ) します。

このスプライトがクリックされたとき

    • 説明 ( せつめい )
    • スタートボタンがクリックされたら各スプライトに Startを送りゲームを開始します。

    •  
    • コードの 詳細 ( しょうさい )
    • Startを送ります。

      ボタンを 隠 ( かく ) します。

完了 ( かんりょう ) を受け取ったとき

    • 説明 ( せつめい )
    • ボールが止まったらRetryボタンを表示します。

    •  
    • コードの 詳細 ( しょうさい )
    • x 座標 ( ざひょう ) を0、 y 座標 ( ざひょう ) を40にします。

      コスチュームをRetry にします。

ボール

主な動き

  • がクリックされたら 各変数 ( かくへんすう ) を 初期化 ( しょきか ) して助走を開始。
  • 助走中は左向き 矢印 ( やじるし ) (←)キー、右向き 矢印 ( やじるし ) (→)キーが 押 ( お ) されたらPlayerと同じように左右に 移動 ( いどう ) する。
  • 右向き 矢印 ( やじるし ) (→)キーが 押 ( お ) されている間は初速を 増 ( ふ ) やしていく。
    右向き 矢印 ( やじるし ) (→)キーが 押 ( お ) されていなかったり、左向き 矢印 ( やじるし ) (←)キーも 押 ( お ) されていたりした場合は 初速を14(m/秒)に 戻 ( もど ) す。
    右へ 移動 ( いどう ) している間だけ初速を 増 ( ふ ) やしていき、 止まったり左へ 移動 ( いどう ) したりしたら初速を 初期値 ( しょきち ) へ 戻 ( もど ) す。
  • スペースキーを 押 ( お ) したらボールを投げる。
    この時、スペースキーを 押 ( お ) してから 離 ( はな ) すまでの時間によって投げる角度を決める(長いほど角度が大きくなる)。
    踏切線 ( ふみきりせん ) を 越 ( こ ) えてしまっていたら(x 座標 ( ざひょう ) > 踏切線 ( ふみきりせん ) のx 座標 ( ざひょう ) だったら)ファールとする。
  • スペースキーを 離 ( はな ) したら、投げた 位置 ( いち ) 、投げた時のボールの速さ、投げた時の角度が決まる。
    ボールの速さは 右方向の速さと 上方向の速さへ 分解 ( ぶんかい ) する。
    右方向には右方向の速さで進み続ける。
    上方向にはまず 上方向の速さで 移動 ( いどう ) を開始し、 重力 加速 ( かそく ) 度の分だけ 遅 ( おそ ) くなっていき、そのうち速さがマイナスとなり落ちていく。
  • ボールの高さが0になったら 跳 ( は ) ね返る。この時、上方向の速さを50%、 右方向の速さを40%に 減 ( へ ) らす( 跳 ( は ) ね返る度に 遅 ( おそ ) くなり最終的に止まる)。
    最初に落ちた場所と 踏切線 ( ふみきりせん ) との 距離 ( きょり ) が 記録 ( きろく ) となる。
  • ファールでなかった場合のみ、最初に地面に落ちた時に 着地を 計測員 ( けいそくいん ) へ送る。
  • 記録 ( きろく ) 、 飛 ( と ) んだ 距離 ( きょり ) 、 投げた時の時速、 投げた角度を 履歴 ( りれき ) リストへ 追加 ( ついか ) する。

「Start」を受け取ったとき

    • 説明 ( せつめい )
    • 左右の 矢印 ( やじるし ) キーで助走し、スペースキーを 押 ( お ) してボールを投げます。

    •  
    • 必要 ( ひつよう ) な 処理 ( しょり )
    • 1. 変数 ( へんすう ) の 初期化 ( しょきか )
    • 2. ペンで書かれたボールの 軌跡 ( きせき ) を 消 ( け ) す
    • 3. 助走
    • 4. 投げる角度を決定
    • 5. 投げた時の初速と投げる角度から右方向の速さと上方向の速さを計算
    • 6. 投げた後のボールの動きの 処理 ( しょり )
    •  
    • コードの 詳細 ( しょうさい )
    • このスプライトの他のスクリプトを止めます。

      x 座標 ( ざひょう ) を-210、 y 座標 ( ざひょう ) を-144(初期 位置 ( いち ) )にします。

      ペンの色と太さを 設定 ( せってい ) します。

      ボールの 軌跡 ( きせき ) を 消 ( け ) します。(前回投げた 際 ( さい ) の 軌跡 ( きせき ) を 消 ( け ) します)

      ボールを表示します。

      猫 ( ねこ ) の上にボールが表示されるようにするために 最前面へ移動するを 置 ( お ) きます。

      各変数 ( かくへんすう ) を 初期化 ( しょきか ) します。

      スペースキーが 押 ( お ) されるまで助走します。

      投げた時のボールのx 座標 ( ざひょう ) を投げた場所として 記憶 ( きおく ) しておきます。

      スペースキーを 離 ( はな ) すまでの時間で投げる角度を決定します。

      投げたボールの動きは水平方向(右方向)と 垂直 ( すいちょく ) 方向(上下方向)にわけて計算します。

      ここでは投げた時のボールの速さと角度からボールの右方向の速さと上方向の速さを計算しています。

      右方向の速さは「速さ×cos(地面との角度)」で求められます。

      上方向の速さは「速さ×sin(地面との角度)」で求められます。

      画面 ( がめん ) の左 側 ( がわ ) に表示する 値 ( あたい ) を計算します。

      投げたを送ります。

      投げるを実行します。

初期化 ( しょきか )

    • 説明 ( せつめい )
    • 各変数 ( かくへんすう ) に 初期値 ( しょきち ) を 設定 ( せってい ) します。

スペースキーが 押 ( お ) されるまで助走

    • 説明 ( せつめい )
    • スペースキーが 押 ( お ) されるまで左向き 矢印 ( やじるし ) キー、右向き 矢印 ( やじるし ) キーで動かせるようにします。

      Playerと同じように動きます。

    •  
    • 必要 ( ひつよう ) な 処理 ( しょり )
    • 1. 左右 矢印 ( やじるし ) キー(← / →)が 押 ( お ) された時の左右への 移動 ( いどう )
    • 2. 初速を計算
    • 3. ファールの 判定 ( はんてい )
    •  
    • コードの 詳細 ( しょうさい )
    • スペースキーが 押 ( お ) されるまで左向き 矢印 ( やじるし ) キー、 右向き 矢印 ( やじるし ) キーで動かせるようにします。

      右向き 矢印 ( やじるし ) キーが 押 ( お ) されている間、下記のAの 処理 ( しょり ) をして右に動かします

    •  
    • A :

      x 座標 ( ざひょう ) を2ずつ 変 ( か ) えて右に動かします。
      ただし 画面 ( がめん ) の 右端 ( みぎはし ) よりも右には進めなくするようにするために、 x 座標 ( ざひょう ) が210よりも小さい場合のみ x 座標 ( ざひょう ) を 変 ( か ) えるようにします。
      右に動いている間はボールの初速 を秒速0.7mずつ 増 ( ふ ) やします。
      もし 初速が28よりも 大きくなってしまったら28に 戻 ( もど ) します。
      右向き 矢印 ( やじるし ) キーが 押 ( お ) されていなかったら(右向き) 初速を秒速14mに 戻 ( もど ) します。

    •  
    • 左向き 矢印 ( やじるし ) キーが 押 ( お ) されている間、下記のBの 処理 ( しょり ) をして左に動かします。

    •  
    • B :

      x 座標 ( ざひょう ) を-2ずつ 変 ( か ) えて左に動かします。
      ただし 画面 ( がめん ) の 左端 ( ひだりはし ) よりも左には進めなくするようにするために、 x 座標 ( ざひょう ) が-210よりも大きい場合のみ x 座標 ( ざひょう ) を 変 ( か ) えるようにします。
      ボールの初速を秒速14mに 戻 ( もど ) します。
      ここで14に 戻 ( もど ) さないと右向き 矢印 ( やじるし ) キーと左向き 矢印 ( やじるし ) キーの両方が 押 ( お ) されている間も初速が 増 ( ふ ) えていってしまいます。

    •  
    • スペースキーが 押 ( お ) された時にx 座標 ( ざひょう ) が 踏切線 ( ふみきりせん ) のX 座標 ( ざひょう ) を 越 ( こ ) えていたら ファールを1にします。 ファールの 値 ( あたい ) は他のスプライトからも 参照 ( さんしょう ) されますので、すべてのスプライト用にしています。

スペースキーを 離 ( はな ) すまでの時間で投げる角度を決定

    • 説明 ( せつめい )
    • スペースキーを 押 ( お ) している間、ボールを投げる角度を 増 ( ふ ) やしていきます (スペースキーを 押 ( お ) している時間が長いほど上に向かって投げます)。

      投げる角度は最大で90度(真上)とします。

    •  
    • コードの 詳細 ( しょうさい )
    • スペースが 押 ( お ) されている間、投げた角度 (ボールと地面との角度)を2度ずつ 増 ( ふ ) やします。

      角度が 増 ( ふ ) えるスピードが速すぎるため、2度 増 ( ふ ) やす度に0.01秒待つようにしています。

      1回で 増 ( ふ ) やす角度を小さくして待つ時間を短くしたほうが角度を細かく 変 ( か ) えられるのでよいのですが、 待つ時間をこれ以上短くしても 実際 ( じっさい ) に動かしてみると指定した待ち時間よりも長くかかってしまい、 角度が 増 ( ふ ) えるスピードが 遅 ( おそ ) すぎてしまうため、0.01秒ごとに2度ずつ 増 ( ふ ) やすようにしています。

      角度が90度を 越 ( こ ) えてしまった場合は90度に 戻 ( もど ) します。

      90度に 戻 ( もど ) す 処理 ( しょり ) をはずし、90度より大きい角度で投げた場合に どのようにボールが 飛 ( と ) ぶのかをためしてみましょう。

表示する 値 ( あたい ) を計算

    • 説明 ( せつめい )
    • 投げた時のボールの速さ、右方向の速さ、上方向の速さを秒速?mから時速?kmに 変更 ( へんこう ) しています。

投げる

    • 説明 ( せつめい )
    • 投げた時には 垂直 ( すいちょく ) 方向では上に進み、 重力によって速さが9.807m/秒(地球の場合)ずつ 遅 ( おそ ) くなっていきます。

      速さがプラスの間は上に向かって進みますが、 マイナスになった後は下に落ちていき、高さが0mになったら地面で 跳 ( は ) ね返ります。

      水平方向は右に同じ速さで進みます。

      ボールの高さが0mになるまでに右に進んだ 距離 ( きょり ) が 飛距離 ( ひきょり ) となります。

      実際 ( じっさい ) に地球上でボールを投げた場合には空気 抵抗 ( ていこう ) などの 影響 ( えいきょう ) を受けますが、 本プログラムでは空気 抵抗 ( ていこう ) などの 影響 ( えいきょう ) はないものとしています。

    •  
    • コードの 詳細 ( しょうさい )
    • ボールが止まったを0にします。

      回転速度を20度にします。

      ボールが止まったが 1になるまで下記のAの 処理 ( しょり ) をくり返します。

    •  
    • A :

      ボールは 飛 ( と ) んでいる間、右に回転するようにします。
      1回のループで右に回転速度度回転させます。
      最初に地面に着くまでは回転速度を20度とし、着地後は5度にしています。
      飛距離 ( ひきょり ) は 右方向の速さ(m/秒)の分だけ 増 ( ふ ) やしていきます。
      飛距離 ( ひきょり ) を 増 ( ふ ) やす量は計算上では 右方向の速さ(m/秒)×ループ1回分の時間(秒)にすべきですが、 画面上 ( がめんじょう ) で自然な速さに見えるようにするために 右方向の速さ(m/秒)× 速度調整 係数 ( けいすう ) (=0.1)(秒)としています。
      ボールのx 座標 ( ざひょう ) を 投げた場所(投げた場所のx 座標 ( ざひょう ) )+ 飛距離 ( ひきょり ) × 距離 ( きょり ) と 座標 ( ざひょう ) の 比 ( ひ ) にします ( 飛距離 ( ひきょり ) の単位はメートルなので 画面上 ( がめんじょう ) の 座標 ( ざひょう ) に 変換 ( へんかん ) しています)。
      現在のボールの高さから ループ1回分の高さの 変化量 ( へんかりょう ) を足しても0より大きい(地面につかない) 場合は空中での 処理 ( しょり ) を実行します。
      そうでない場合(高さが0になり地面に着く場合)は 空中での 処理 ( しょり ) を実行します。
      ボールが止まったが0のままであれば次のループを実行します。
      そのままくり返すとボールの動きが速すぎてしまうため、 ループが1回実行されるたびに0.01秒待つようにして動きを見やすくしています。

    •  
    • ボールが止まったが 1になっていればくり返し 処理 ( しょり ) を終了し、 完了 ( かんりょう ) を送ります。

空中での 処理 ( しょり )

    • 説明 ( せつめい )
    • 上方向の速さにしたがって ボールの高さを 変更 ( へんこう ) し、 ボールの高さをもとに 画面上 ( がめんじょう ) でのy 座標 ( ざひょう ) を決定します。

      上方向の速さは 重力 加速 ( かそく ) 度にしたがって 変 ( か ) わっていきます。

      投げてから最初に地面に着くまではボールの 軌跡 ( きせき ) をペンで 描画 ( びょうが ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • 上方向の速さにしたがって ボールの高さを 更新 ( こうしん ) します。 この時も 飛距離 ( ひきょり ) を計算する 際 ( さい ) に使用した速度調整 係数 ( けいすう ) を使用します。

      ボールの高さをもとにボールの y 座標 ( ざひょう ) を 更新 ( こうしん ) します (ボールの高さ→Y 座標 ( ざひょう ) を実行します)。

      上方向の速さを重力 加速 ( かそく ) 度× 速度調整 係数 ( けいすう ) だけ 減 ( へ ) らしていきます (上に向かって進んでいる時は 遅 ( おそ ) くなっていき、下に向かって進んでいる時 (落ちている時)は速くなっていきます)。

      もしx 座標 ( ざひょう ) > 234または y 座標 ( ざひょう ) >174である場合は ボールの 座標 ( ざひょう ) が 画面 ( がめん ) の外になるため、ボールを 隠 ( かく ) します。

      ボールの 座標 ( ざひょう ) が 画面内 ( がめんない ) である場合は表示し、 投げてから最初に地面に着くまではボールの 軌跡 ( きせき ) をペンで 描画 ( びょうが ) します。

      一度着地した後は回転速度を5度になるため、 20度であれば一度も地面に着地していないと 判断 ( はんだん ) して 軌跡 ( きせき ) を 描画 ( びょうが ) しています。

着地した時の 処理 ( しょり )

    • 説明 ( せつめい )
    • ボールの高さを0にし、 ボールのy 座標 ( ざひょう ) を高さが0の時の 座標 ( ざひょう ) にします。

      着地するまでは上方向の速さはマイナスであり、 着地したらプラスにして 跳 ( は ) ね返るような動きにします。

      着地するたびに上方向の速さ、 右方向の速さの大きさを 減 ( へ ) らします。

      初めて着地した 際 ( さい ) には他のスプライトへ着地を送り、 飛距離 ( ひきょり ) や 記録 ( きろく ) を計算して 履歴 ( りれき ) に 追加 ( ついか ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • ボールの高さを 上方向の速さ ×速度調整 係数 ( けいすう ) の分だけ 変 ( か ) えてしまうと マイナスになってしまうので着地した時の 処理 ( しょり ) では ボールの高さを0にします。

      ボールの高さ→Y 座標 ( ざひょう ) を 実行してボールのy 座標 ( ざひょう ) を 変更 ( へんこう ) します。 この時は必ず高さが0の時のy 座標 ( ざひょう ) になります。

      ボールが地面に当たって 跳 ( は ) ねる度に上方向の速さを50%、 右方向の速さを40%に 減 ( へ ) らします。 また上方向の速さをプラス(上に向かって進む)にします。

      回転速度が20度だった場合は、 初めての着地なので下記のAの 処理 ( しょり ) をします。

    •  
    • A :

      回転速度を5度に 減 ( へ ) らします。
      ボールのx 座標 ( ざひょう ) を「落ちた場所」として 記憶 ( きおく ) しておきます。
      もしファールでない場合(ファールが0の場合)、 ボールが 飛 ( と ) んだ 距離 ( きょり ) と 記録 ( きろく ) を計算し、 他のスプライトに着地を送ります。
      飛 ( と ) んだ 距離 ( きょり ) は 飛距離 ( ひきょり ) を四捨五入して整数にした 値 ( あたい ) です。
      記録 ( きろく ) は 踏切線 ( ふみきりせん ) のX 座標 ( ざひょう ) と 投げた場所との 距離 ( きょり ) を 飛距離 ( ひきょり ) から引いた 値 ( あたい ) になります。 「 踏切線 ( ふみきりせん ) のX 座標 ( ざひょう ) と 投げた場所との 距離 ( きょり ) 」の単位は 座標 ( ざひょう ) なので 距離 ( きょり ) と 座標 ( ざひょう ) の 比 ( ひ ) (3.6)で 割 ( わ ) ってメートルに 変換 ( へんかん ) しています。
      ファールの場合は 記録 ( きろく ) の計算やメッセージの送信はしません。
      履歴 ( りれき ) 作成を実行して、 今回の 記録 ( きろく ) を 履歴 ( りれき ) に 追加 ( ついか ) します。

    •  
    • 上方向の速さの 絶対値 ( ぜったいち ) と 右方向の速さがどちらも1より小さくなった、 もしくはx 座標 ( ざひょう ) が234より大きくなった( 画面 ( がめん ) の外で着地した)ら ボールが止まったを1にします。

      「x 座標 ( ざひょう ) が234より大きい場合」を入れないと、 ボールが 画面 ( がめん ) の外にあって見えない場合でもバウンドが終わるまで待たなくてはなりません。

ボールの高さ → Y 座標 ( ざひょう )

    • 説明 ( せつめい )
    • ボールの高さ(m)をもとにボールの y 座標 ( ざひょう ) を 変更 ( へんこう ) します。

履歴 ( りれき ) 作成

    • 説明 ( せつめい )
    • 記録 ( きろく ) 、 飛 ( と ) んだ 距離 ( きょり ) 、投げた時の時速(km/h)と角度を 履歴 ( りれき ) に 追加 ( ついか ) します。

      履歴 ( りれき ) は最大5件まで 保存 ( ほぞん ) され、5件を 超 ( こ ) えると古いものから 削除 ( さくじょ ) します。

    •  
    • コードの 詳細 ( しょうさい )
    • 履歴 ( りれき ) 要素 ( ようそ ) に 1回の投球についてのそれぞれの情報を文字列として 追加 ( ついか ) して、 1つの文字列をつくり、それを 履歴 ( りれき ) のリストに 追加 ( ついか ) していきます。

      ファールが0なら(ファールでなければ) 履歴 ( りれき ) 要素 ( ようそ ) に 記録 ( きろく ) を 追加 ( ついか ) します。

      ファールが0以外なら(ファールなら) 記録 ( きろく ) ではなく 「ファール」を 追加 ( ついか ) します。

      飛 ( と ) んだ 距離 ( きょり ) (投げてから最初に地面に着くまでの 距離 ( きょり ) )、 投げた時の時速、投げた角度を 履歴 ( りれき ) 要素 ( ようそ ) に 追加 ( ついか ) します。

      履歴 ( りれき ) 要素 ( ようそ ) を履歴に 追加 ( ついか ) します。

      履歴 ( りれき ) の長さが5を 超 ( こ ) えてしまったら5になるまで先頭から 削除 ( さくじょ ) していきます。

プレーヤー

主な動き

  • 左(←)キー、右(→)キーが 押 ( お ) されたら左右に 移動 ( いどう ) する。
  • 左右に 移動 ( いどう ) している間、コスチュームをくり返し切り 替 ( か ) えて歩いているようにみせる。
  • スペースボタンが 押 ( お ) されたら止まり、それ 以降 ( いこう ) は左(←)キー、右(→)キーを 押 ( お ) しても動かないようにする。

「Start」を受け取ったとき

2つの 処理 ( しょり ) を並行でおこないます。

    • 説明 ( せつめい )
    • プレーヤーを開始 位置 ( いち ) に 置 ( お ) き、スペースキーが 押 ( お ) される (ボールを投げる)まで左向き 矢印 ( やじるし ) キー、右向き 矢印 ( やじるし ) キーで動かせるようにします。

    •  
    • コードの 詳細 ( しょうさい )
    • x 座標 ( ざひょう ) を-220、y 座標 ( ざひょう ) を-140(初期 位置 ( いち ) )にします。

      スペースキーが 押 ( お ) されるまで下記のAの 処理 ( しょり ) をくり返します。

    •  
    • A :

      左向き 矢印 ( やじるし ) キーが 押 ( お ) されている場合、下記のBの 処理 ( しょり ) をします。
      逆に右向き 矢印 ( やじるし ) キーが 押 ( お ) されている場合、下記のCの 処理 ( しょり ) をします。

    •  
    • B :

      向きを-90度(左)に向けます。
      x 座標 ( ざひょう ) を-2ずつ 変 ( か ) えて左に動かします。
      ただし 画面 ( がめん ) の 左端 ( ひだりはし ) よりも左には進めなくするようにするために、x 座標 ( ざひょう ) が-220よりも大きい場合のみx 座標 ( ざひょう ) を 変 ( か ) えるようにします。
      Playerのx 座標 ( ざひょう ) は常にボールのx 座標 ( ざひょう ) -10としているため、 -220を 左端 ( ひだりはし ) としています。

    •  
    • C :

      向きを90度(右)に向けます。
      x 座標 ( ざひょう ) を2ずつ 変 ( か ) えて右に動かします。
      ただし 画面 ( がめん ) の 右端 ( みぎはし ) よりも右には進めなくするようにするために、 x 座標 ( ざひょう ) が200よりも小さい場合のみ x 座標 ( ざひょう ) を 変 ( か ) えるようにします。
      Playerのx 座標 ( ざひょう ) は常にボールの x 座標 ( ざひょう ) -10としているため、200を 右端 ( みぎはし ) としています。

    •  
    • スペースキーが 押 ( お ) されたら向きを90度(右)に向けます。

    • 説明 ( せつめい )
    • 左向き 矢印 ( やじるし ) キー、右向き 矢印 ( やじるし ) キーが 押 ( お ) されたらcostume1と costume2をくり返し切り 替 ( か ) え、歩いているように見せます。

    •  
    • コードの 詳細 ( しょうさい )
    • コスチュームをcostume1にします。

      スペースキーが 押 ( お ) されるまで下記のAの 処理 ( しょり ) をくり返します。

    •  
    • A :

      左向き 矢印 ( やじるし ) キーまたは右向き 矢印 ( やじるし ) キーが 押 ( お ) されている場合、下記のBの 処理 ( しょり ) をします。
      左向き 矢印 ( やじるし ) キー、右向き 矢印 ( やじるし ) キーのどちらも 押 ( お ) されていなかったらcostume1にします。

    •  
    • B :

      次のコスチュームにします。
      切り 替 ( か ) えが速くなりすぎないように、 コスチュームを切り 替 ( か ) えたら0.1秒待ちます。

    •  
    • スペースキーが 押 ( お ) されたら(ボールを投げたら) コスチュームをcostume1にします。

計測員 ( けいそくいん )

主な動き

  • から着地 が送られてきたら、ボールが落ちた地点へ1秒間で 移動 ( いどう ) し、 記録 ( きろく ) を言う。
    移動 ( いどう ) 中はコスチュームを切り 替 ( か ) え、歩いているようにみせる。
  • から 投げたが送られてきた時に、 投げた時の時速と 投げた角度がよい場合はGood!と言う。
  • から投げた が送られてきた時に、 踏切線 ( ふみきりせん ) を 越 ( こ ) えてしまっていたらファールと言う。

「Start」を受け取ったとき

    • 説明 ( せつめい )
    • 初期状態 ( しょきじょうたい ) にします。

    •  
    • コードの 詳細 ( しょうさい )
    • このスプライトの他のスクリプトを止めます。

      x 座標 ( ざひょう ) を210、 y 座標 ( ざひょう ) を-145にします。

      コスチュームをgiga-aにします。

      前回のセリフを 消 ( け ) すためにセリフなしを0秒言わせています。

投げたを受け取ったとき

    • 説明 ( せつめい )
    • 投げた時に白線を 越 ( こ ) えていたら「ファール!」と言います。

      投げた時の時速と投げた角度がよかったら (98km/hより速くて39度~49度なら)「Good!」と言います。

    •  
    • コードの 詳細 ( しょうさい )
    • まず0.5秒待ちます。

      ファールが1ならコスチュームを> giga-dにして「ファール!」と言います。

      ファールではなく、投げた時の時速が98km/hより速く 且 ( か ) つ 投げた角度が39度~49度だったら「Good!」と1秒言います。

着地を受け取ったとき

    • 説明 ( せつめい )
    • ボールが落ちた場所に 移動 ( いどう ) し、 記録 ( きろく ) を言います。

    •  
    • コードの 詳細 ( しょうさい )
    • 1秒でx 座標 ( ざひょう ) を 落ちた場所に、 y 座標 ( ざひょう ) を-145にします。

      このスプライトの他のスクリプトを止めます。

      x 座標 ( ざひょう ) を210、 y 座標 ( ざひょう ) を-145にします。

      移動 ( いどう ) した後にコスチュームをgiga-bにします。

      記録 ( きろく ) mと言います。

    • 説明 ( せつめい )
    • 歩いているように見せるために4つのコスチュームを0.2秒ごとに 順番 ( じゅんばん ) に切り 替 ( か ) えています。

地球ボタン

このボタンが 押 ( お ) されたらステージを地球にします。

主な動き

  • クリックされたらコスチュームを 選択 ( せんたく ) にして 背景 ( はいけい ) を地球にする。
    重力 加速 ( かそく ) 度を9.807m/s²にする。月ボタンへ 地球を 選択 ( せんたく ) を送る。
  • 月ボタンから地球を 選択 ( せんたく ) が送られてきたらコスチュームを 非選択 ( ひせんたく ) にする。

がクリックされたとき

    • 説明 ( せつめい )
    • 右上に表示されるように 座標 ( ざひょう ) を 設定 ( せってい ) します。

      コスチュームを 選択 ( せんたく ) ( 選択 ( せんたく ) されていることを示す)にします。

      重力 加速 ( かそく ) 度を地球の重力 加速 ( かそく ) 度(9.806m/s²)にします。

      速度調整 係数 ( けいすう ) を0.1にします。

「Start」を受け取ったとき

    • 説明 ( せつめい )
    • 右上に表示されるように 座標 ( ざひょう ) を 設定 ( せってい ) します。

      基本的 ( きほんてき ) にはこの 処理 ( しょり ) は 必要 ( ひつよう ) ありませんが、 クリックした 際 ( さい ) に 誤 ( あやま ) って 位置 ( いち ) をずらしてしまっても元の 位置 ( いち ) に 戻 ( もど ) るようにしています。

このスプライトがクリックされたとき

    • 説明 ( せつめい )
    • コスチュームを 選択 ( せんたく ) ( 選択 ( せんたく ) されていることを示す)にします。

      背景 ( はいけい ) を地球にします。

      重力 加速 ( かそく ) 度を地球の重力 加速 ( かそく ) 度(9.806m/s²)にします。

      速度調整 係数 ( けいすう ) を0.1にします。 地球と月でどちらも0.1にしているため、 設定 ( せってい ) しなおす 必要 ( ひつよう ) はないのですが、 違 ( ちが ) う 値 ( あたい ) にした場合に 備 ( そな ) えて 設定 ( せってい ) するようにしています。

      地球を 選択 ( せんたく ) を送ります。

月を 選択 ( せんたく ) を受け取ったとき

    • 説明 ( せつめい )
    • コスチュームを 非選択 ( ひせんたく ) ( 選択 ( せんたく ) されていないことを示す)にします。

月ボタン

主な動き

  • クリックされたらコスチュームを 選択 ( せんたく ) にして 背景 ( はいけい ) を月にする。
    重力 加速 ( かそく ) 度を1.622m/s²にする。 地球ボタンへ月を 選択 ( せんたく ) を送る。
  • 地球ボタンから月を 選択 ( せんたく ) が送られてきたらコスチュームを 非選択 ( ひせんたく ) にする。

がクリックされたとき

    • 説明 ( せつめい )
    • 右上に表示されるように 座標 ( ざひょう ) を 設定 ( せってい ) します。

      コスチュームを 非選択 ( ひせんたく ) ( 選択 ( せんたく ) されていないことを示す)にします。

「Start」を受け取ったとき

    • 説明 ( せつめい )
    • 右上に表示されるように 座標 ( ざひょう ) を 設定 ( せってい ) します。

      基本的 ( きほんてき ) にはこの 処理 ( しょり ) は 必要 ( ひつよう ) ありませんが、 クリックした 際 ( さい ) に 誤 ( あやま ) って 位置 ( いち ) をずらしてしまっても元の 位置 ( いち ) に 戻 ( もど ) るようにしています。

このスプライトがクリックされたとき

    • 説明 ( せつめい )
    • コスチュームを 選択 ( せんたく ) ( 選択 ( せんたく ) されていることを示す)にします。

      背景 ( はいけい ) を月にします。

      重力 加速 ( かそく ) 度を月の重力 加速 ( かそく ) 度(1.622m/s²)にします。

      速度調整 係数 ( けいすう ) を0.1にします(地球と月でどちらも0.1にしているため、

      設定 ( せってい ) しなおす 必要 ( ひつよう ) はないのですが、 違 ( ちが ) う 値 ( あたい ) にした場合に 備 ( そな ) えて 設定 ( せってい ) するようにしています)。

      月を 選択 ( せんたく ) を送ります。

地球を 選択 ( せんたく ) を受け取ったとき

    • 説明 ( せつめい )
    • コスチュームを 非選択 ( ひせんたく ) ( 選択 ( せんたく ) されていないことを示す)にします。

履歴 ( りれき ) 表示ボタン

主な動き

  • クリックされたら 履歴 ( りれき ) の表示/ 非 ( ひ ) 表示を切り 替 ( か ) える。

がクリックされたとき

    • 説明 ( せつめい )
    • 右上に表示されるように 座標 ( ざひょう ) を 設定 ( せってい ) します。 履歴 ( りれき ) のすべてを 削除 ( さくじょ ) して 隠 ( かく ) します。

      履歴 ( りれき ) が表示されているを0にします。

「Start」を受け取ったとき

    • 説明 ( せつめい )
    • 右上に表示されるように 座標 ( ざひょう ) を 設定 ( せってい ) します。

      履歴 ( りれき ) を 隠 ( かく ) します( 削除 ( さくじょ ) はしません)。

      履歴 ( りれき ) が表示されているを0にします。

このスプライトがクリックされたとき

    • 説明 ( せつめい )
    • 履歴 ( りれき ) が表示されていない( 履歴 ( りれき ) が表示されている=0)なら 履歴 ( りれき ) を表示して 履歴 ( りれき ) が表示されているを1にします。

      そうでない場合は 履歴 ( りれき ) を 隠 ( かく ) して 履歴 ( りれき ) が表示されているを0にします。

踏切線 ( ふみきりせん )

「Start」を受け取ったとき

    • 説明 ( せつめい )
    • 踏切線 ( ふみきりせん ) の 座標 ( ざひょう ) を 設定 ( せってい ) し、x 座標 ( ざひょう ) を 踏切線 ( ふみきりせん ) のX 座標 ( ざひょう ) に 保存 ( ほぞん ) しておきます。

ステージ

がクリックされたとき

    • 説明 ( せつめい )
    • 背景 ( はいけい ) を地球にします。

「Start」を受け取ったとき

    • 説明 ( せつめい )
    • すべてのスプライトで使う 変数 ( へんすう ) のいくつかを 初期化 ( しょきか ) します。

      投げた角度は 初期値 ( しょきち ) を0度ではなく9度にしています。

^