ここでは、「game01」というディレクトリ内で作業しているという前提で説明しています。
ジャンプ出来るようにする
キーを押したらクマがジャンプするようにスクリプトを修正してみます。
まずは、「enforceMain.coffee」のクマのキャラクターオブジェクト生成部分に、重力パラメータを追加します。
class enforceMain
constructor:->
bearobj = addObject
・
(略)
・
width: 32
height: 32
gravity: 1 ← 追加分
・
(略)
・
次に、前回までの「bearChara.coffee」の「behavior」を下記のように修正します。
behavior:->
super()
switch @_processnumber
when 0
axes = PADAXES[0]
@x += axes[HORIZONTAL] * 4
@y += axes[VERTICAL] * 4
buttons = PADBUTTONS[0]
# 以下追加分
if (@y > SCREEN_HEIGHT - @height)
@y = SCREEN_HEIGHT - @height
if (buttons[1])
@ys = -20
# 追加ここまで
if (buttons[0])
addObject
image: 'bear'
motionObj: bullet
x: @x
y: @y
ys: -16
width: 32
height: 32
animlist: [
[100, [0, 1, 0, 2]]
]
修正が終わりましたら保存してコンパイルし、ブラウザをリロードしてください。
前回までは画面中央に止まっていたクマが下に落ちていき、画面最下段で止まります。
そこでキーボードの「x」キーか、ジョイパッドのボタン2を押してください。
クマがジャンプするはずです。
キャラクター生成時に加えたパラメータ「gravity」は、この値が毎フレーム、y方向の加速度に加算されるため、移動量が徐々に増えるため放物線を描くように下に落ちて行きます。
キャラクター自体のスクリプト(bearChara.coffee)で、画面の最下段より下に行こうとした場合は、それ以上下へ行かないように制御します。
そして、「x」キーかジョイパッドのボタン2が押された場合は、y方向の移動量を一気に「-20」にするので上へ移動します。
一気に増えたy方向の移動量がフレーム毎にgravityづつ変化するので、再び下に落ちてくるという仕組みになっています。
チュートリアル(5) <--- ⬛︎ ---> チュートリアル(7)