どうもこんにちは。
怠けているうちにかれこれ二か月以上も放置してしまいました。久しぶりの更新です。
最近、enchant.js(公式サイトへ飛びます)というライブラリをよく触っています。これはJavascriptを用いたゲーム制作をスムーズにできるライブラリです。
JSでゲームとか、ちょっと昔では考えられないことでしたなあ。WebでプレイするライトなゲームといえばFlashで作るのが当たり前でしたからね。
Spriteクラスだとか、addChild()メソッドなどと、AS3にとても影響を受けたであろう言葉がいろんなところに散らばっていて、AS3しか使えないようなモノリンガルな自分にとってはうれしい限りです。
でも使っていると、気になる点がちょこっとだけ・・・
画像を表示することができるクラスSpriteなんですが、これ自身にはaddChildメソッドがありません。ではどこにあるかと言うと、別のクラスGroupにあります。 ですので、画像の上に画像を重ねたい(キャラクターの上に感情を表すグラフィックを重ねるとか)場合は、Groupクラスをコンテナとしてその中にSpriteをaddChildしなければいけないのですね。
対してAS3は、DisplayObjectContainerクラスのサブクラスならaddChildできます。こちらのSpriteはDisplayObjectContainerのサブクラスとして派生していますが、普通にaddChildが使えることに慣れていたので、enchant.jsでは使えなかったことに違和感を覚えていました。
でもよく考えたら、BitmapとかTextFieldだってaddChildは使えないんですよね。それにFlexフレームワーク内だとmxmlで作ったビューにSpriteをaddChildしたい場合はUIComponentを間にかませないとエラーを吐きますから、そう大差ないかもしれません。(Flex4からは表示オブジェクトはまた違った体系になってますが……)
とりあえず、enchant.jsのSpriteはAS3のBitmapに当たると考えておくことにします。グループ化したいときはGroupをかませる!うん、むしろ名前がすっきりしてて多分分かりやすい!(・ω・´)
そんなこんなで楽しくenchant.jsを触らせて頂いております。ゲームはまだ作りかけですが、出来上がったら9leap.netにUPしたいな。したいな……!