CraftyJS の初歩

HTML と CraftyJS

前回は、index.html をブラウザで表示するところまでやりました。
内容について少し説明します。

index.html のコードを色分けしました。
青っぽい部分は、HTMLのルールで書かれています。
それ以外の3行は、CraftyJSというゲームフレームワークを使って、JavaScriptのルールで書かれています。
この部分でゲームのプログラミングをしていきます。
HTMLに興味がある人は、自分で調べて下さい。

 

3行のプログラム

1行目
Crafty.init(500,400,document.getElementById(‘game’));

これは初期設定です。
2つの数値は描画に使うエリアの幅と高さです。
幅が500、高さが400ということです。

2行目
Crafty.background(’#bbbbbb’);

背景色を指定しています。
指定方法はいくつかあります。好きな方法を使いましょう。
例:
(“red”)
("#f00")
(“rgb(255, 0, 0)”)

 

3行目
Crafty.e(‘2D, Canvas, Color’).attr({x:0,y:0,w:100,h:100}).color(’#F00’);

これは「 幅100 高さ100の赤い四角を、座標 x:0 y:0 に表示せよ 」
といった命令です。
パラメーターばかりで覚えにくいですね。

 

操作してみる

3行目の命令が分かりづらかったので、書き方を変えてみました。
ついでに、Fourway というパラメータも増やしました。

次のように変更して下さい。
(JavaScript のプログラムエリアのみ変更して下さい)
コピペではなく手入力する人は、セミコロンの有り無しに注意しましょう。

<script>
    Crafty.init(500,400, document.getElementById('game'));
    Crafty.background('#bbbbbb');
    Crafty.e('2D, Canvas, Color, Fourway')
            .attr({x: 0, y: 0, w: 100, h: 100})
            .color('#F00')
            .fourway(200);
</script>

実行してみて下さい。
ページを開きっぱなしの人は、ページの更新をして下さい。
さて、見た目は変わりません。しかし、
赤い四角をカーソルキーで動かせるようになりました。
上下左右に動かしてみましょう。

なんと、操作できますね。
こんなシンプルなゲームフレームワークも珍しいです。

 

書き方について見てみましょう。
変わった点は、ピリオド毎に改行しているところです。
こちらの方が見やすいですね。

Crafty.e の行では、使う機能を登録しています。
2行目以降は、ピリオドで区切りながらパラメーターを指定しています。

今回は Fourway という機能を追加で登録し、移動速度を200で動かす
という指定をしています。

折角なので、fourway(200) の数値を 50 にしたり 800 に変更してみましょう。
そして移動速度がどのように変わるのか確かめて下さい。
変わらない、という人はブラウザのページを更新しましょう。
プログラムを変更・保存したら、
ブラウザ側で再読み込みする必要があります。

 

左右のみの移動に限定する

次は左右のみ操作できる Twoway を使ってみます。
2箇所ある Fourway を変更しましょう。

<script>
    Crafty.init(500,400, document.getElementById('game'));
    Crafty.background('#bbbbbb');
    Crafty.e('2D, Canvas, Color, Twoway')
        .attr({x: 0, y: 0, w: 100, h: 100})
        .color('#F00')
        .twoway(200);
</script>

さあ、確認してみましょう。
左右のみ動かせるようになりました。

ちなみに、e() の中では Twoway、
パラメーターでは twoway にしないとエラーとなります。
e() のときだけ先頭を大文字にしなければいけません。
ちょっと面倒ですね。

 

重力を付けてみる

四角を表示しているだけの世界に、重力を入れてみます。
四角を受け止めるための床も追加します。

<script>
    Crafty.init(500,400, document.getElementById('game'));
    Crafty.background('#bbbbbb');
    Crafty.e('2D, Canvas, Color, Twoway, Gravity')
        .attr({x: 0, y: 0, w: 100, h: 100})
        .color('#F00')
        .twoway(200)
        .gravity('Floor');
    // 床
    Crafty.e('Floor, 2D, Canvas, Color')
        .attr({x: 0, y: 350, w: 250, h: 10})
        .color('blue');
</script>

 

とりあえず、確認してみましょう。
四角は落下するようになり、追加された青いラインの上で止まります。

操作してみて下さい。
左右キーで移動し、上キーでジャンプするようになりました。
ジャンプの仕組みは入れてませんが、Twoway の機能に含まれていたのです。

青の床よりも右へ、四角を移動してみましょう。
床が無くなると落下します。

ページを更新すれば四角は出てくるので、色々と試しましょう。
ジャンプ中に左右移動はできるのか、とか
床から落ちている最中に左へ移動したらどうなるのか、など。

 

重力と床の設定

変更点を見てみましょう。
重力を作るため、Gravity を追加しました。
パラメーターで設定しているのは、落下を防ぐものです。

 

「落下を防ぐもの」と言ってますが、
床や地面、足場といった方が分かりやすいですね。

その床は、すぐ下で設定しています。
作り方は1つ目の四角と同じです。色は青にしました。
違う点は Floor という名前を付けたところです。

gravity(‘Floor’) の設定で、青い四角は床としての働きをします。
試しに gggFloor みたいに名前を変えて、ページを更新してみましょう。
赤い四角は、青い四角をすり抜けて落下していきます。

確認できたら名前を戻しておきましょう。

 

 

ゲームらしきものを

プログラミングしてみよう

  1. はじめに
  2. CraftyJS の初歩
  3. キャラ画像を表示する
  4. 当たり判定をする