提供: Japanese Scratch-Wiki
(壁ジャンプから転送)
このきじは ひらがなでよめません。ごめんなさい。編集者向け:作成する
Scratchでの壁キックジャンプ とは、 スプライトが壁ではねかえるようにジャンプすることである。これを利用すると、たとえば、階段のような部品を使わずに、ジャンプだけで高い壁を登っていくことなどができる。プラットフォーマー型のプロジェクトで、特によく使用される。
スクリプト例
次に紹介するのは壁キックを実現するスクリプトの一例である。 ここでは、3つの変数を使用する:
- 左速度 — プレイヤーの左方向の速度
- 右速度 — プレイヤーの右方向の速度
- Y方向速度 — プレイヤーのY軸方向の速度
次に、プレイヤースプライトを作成する。このスプライトが操作キャラとして、壁キックを行う。次にプレイヤースプライトの例を示す。
4辺のそれぞれの色は、キャラクターのどの面が壁や地面に触れたかを調べるためのセンサーの役割を持つ。なお、ここではスクリプトを簡単にするためにこのような色分けを行っているが、スクリプトをより工夫すれば、このような色分けは不要になる。
@greenFlag が押されたとき::events hat
[右速度 v] を [0] にする
[左速度 v] を [0] にする
ずっと
もし <[右向き矢印 v] キーが押された> なら
[右速度 v] を (1) ずつ変える
end
もし <[左向き矢印 v] キーが押された> なら
[左速度 v] を (1) ずつ変える
end
もし <[上向き矢印 v] キーが押された> なら
もし <[#0000FF] 色が [#000000] 色に触れた> なら //地面にいるとき
[Y方向速度 v] を [20] にする
[ジャンプ v] を送る
end
end
もし <<[#0000FF] 色が [#000000] 色に触れた> ではない> なら //空中にいるとき
y座標を (-5) ずつ変える
end
もし <[#FF0000] 色が [#000000] 色に触れた> なら //右側が壁に触れたとき
[Y方向速度 v] を [0] にする
[右速度 v] を [0] にする
もし <<<[#0000FF] 色が [#000000] 色に触れた> または <[上向き矢印 v] キーが押された>> ではない> なら //上向き矢印から一度手を離さないと壁キックできない
(0.5) 秒待つ
もし <[上向き矢印 v] キーが押された> なら
[Y方向速度 v] を [20] にする
[ジャンプ v] を送る
end
[左速度速度 v] を [10] にする
end
end
もし <[#00FF00] 色が [#000000] 色に触れた> なら //左側が壁に触れたとき
[Y方向速度 v] を [0] にする
[左速度 v] を [0] にする
もし <<<[#0000FF] 色が [#000000] 色に触れた> または <[上向き矢印 v] キーが押された>> ではない> なら //上向き矢印から一度手を離さないと壁キックできない
(0.5) 秒待つ
もし <[上向き矢印 v] キーが押された> なら
[Y方向速度 v] を [20] にする
[ジャンプ v] を送る
end
[右速度 v] を [10] にする
end
end
x座標を (右速度) ずつ変える
x座標を ((0) - (左速度)) ずつ変える
[右速度 v] を ((右速度) * (-0.2)) ずつ変える
[左速度 v] を ((左速度) * (-0.2)) ずつ変える
end
次に、ジャンプ用のスクリプトを用意する:
[ジャンプ v] を受け取ったとき
(10) 回繰り返す
もし <[#FFFF00] 色が [#000000] 色に触れた> なら //天井にぶつかったとき
[Y方向速度 v] を [0] にする
[このスクリプト v] を止める
end
y座標を (Y方向速度) ずつ変える
[Y方向速度 v] を (-1) ずつ変える
end
[Y方向速度 v] を [0] にする
メモ:
カラーボックスに指定する色は、床や壁の色に合わせて変更すること。なお、このスクリプトを使うには、床と壁は同じ色でなければならない。
参照プロジェクト
- Wall jump engine (この記事のもととなったスクリプト)