LoginSignup
0
0

More than 5 years have passed since last update.

enchant.jsとtmlib.jsを使ったゲーム作成フレームワーク「enforce」チュートリアル(5)弾を発射

Last updated at Posted at 2015-01-14

ここでは、「game01」というディレクトリ内で作業しているという前提で説明しています。

弾を撃てるようにする

キーが押されたら弾を発射する処理を作ってみます。

bearChara.coffee」を開いて、インスタンスメソッド「behavior」を下記のように編集します。

     behavior:->
         super()
         switch @_processnumber
             when 0
                 axes = PADAXES[0]
                 @x += axes[HORIZONTAL] * 4
                 @y += axes[VERTICAL] * 4
                 # 以下追加分
                 buttons = PADBUTTONS[0]
                 if (buttons[0])
                     addObject
                         image: 'bear'
                         motionObj: bullet
                         x: @x
                         y: @y
                         ys: -16
                         width: 32
                         height: 32
                         animlist: [
                             [100, [0, 1, 0, 2]]
                         ]

追加分を説明していきます。

                 buttons = PADBUTTONS[0]

PADBUTTONS[0]」は、最初に接続したゲームパッドのボタン、もしくはキーボードの情報が格納されています。

                 if (buttons[0])

button[0]」は、ゲームパッドのボタン0、もしくはキーボードの「z」か「スペースバー」が押されていたら「true」が格納されています。
もし押されていた場合、新しいスプライトを生成します。
bullet」クラスで動作が定義されたスプライトを生成します。
メソッドの修正が終了しましたら、保存してコンパイルしてください。
次に、ゲームのトップディレクトリ(ディレクトリ「game01」直下)で、

$ enforce derive bullet

を実行して新規クラスファイルを生成します。
src」ディレクトリに「bullet.coffee」が生成されているのを確認しましたらエディタで開き、「behavior」を下記のように修正します。

    behavior:-> 
        super()
        switch @_processnumber
            when 0
                if (@y < 0)
                    removeObject(@)

キャラのy座標が0(画面上端)より小さくなった場合、自分自信(@)を削除する処理を追記しました。

修正が終了しましたら、保存してコンパイルしてください。
コンパイルが正常に終了しましたら、ブラウザをリロードしてみてください。
スペースバーを押すとクマが上に飛んで行くと思います。

チュートリアル(4) <--- ⬛︎ ---> チュートリアル(6)


enforceチュートリアル一覧

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0