Archive for 5月, 2011

enchant.jsの3D回転を拡張するプラグインSprite3d

0

以前の記事で、enchant.jsで回転軸を変えるのには成功したのですが、回転方向を変えるrotateXYZは上手く行きませんでした。
というのも、Spriteオブジェクトではレンダリングされるたびに、スタイルを書き換えているのですが、これのせいで別でスタイルを変えても上書きされてしまってたのです。
最初はSpriteのイベントリスナーを弄る予定だったのですが、無名関数で登録されていて、変更が困難だったので、新しくSprite3Dというクラスを作成しました。

(さらに…)

enchant.jsでオブジェクトの回転軸を変更するプラグイン

0

enchant.jsでは回転機能がサポートされています。
しかし、これが地味に中心軸のみの設定で、別の座標を軸に回転させることができません。
回転軸の変更にはtransform-originというCSSプロパティを設定すればいいのですが、それを簡単に設定するプラグインを作りました。

(さらに…)

enchant.jsで加速度センサーを使う

0

9leapで加速度センサーを使ったゲームが投稿されていました。
すごいなどうやってやっているのだろう?と調べてみると、iOS4.2から加速度センサーをjavascriptで取得できるAPIが実装されていたとのこと。それはすごく面白そうということで、enchant.jsで使えるように色々調べてみました。

(さらに…)

enchant.jsの画面を好きな場所に配置する。

0

enchant.jsでゲームを作って公開するとき、画面が左上に固定されてしまいます。
これはenchant.jsが最初にbody要素の直下にenchant-stageというDIV要素を作るので、レイアウトの変更は難しいのかなー?
とおもってソースを覗いてみると、どうもすでにenchant-stageというIDの要素がある場合は、そこに表示してくれるようです。
(さらに…)

enchant.jsで角度と距離で衝突判定をするプラグイン

0

enchant.jsには衝突判定に、短形同士で判定するintersectと、直線距離で判定するwithinがあります。
withinを使うと自身を中心に円上にある距離内でヒットした場合は判定できるのですが、ゲームを作っているうちに、自分が向いている方向の前方45度のみで衝突判定を行いたい場合がありました。
というわけで、衝突判定を円状ではなく弧状で判定できるarc_withinメソッドを追加できるプラグインを作成しました。
ダウンロード

使い方。
index.htmlのgame.jsの前に

<script type="text/javascript" src="arc_within.js"></script>

を追加

衝突判定を行いたい箇所で、withinの代わりに

 this.arc_within(衝突を判定するオブジェクト,衝突までの最大の距離,角度)

角度は自身のrotationが0の時は真上を起点として、±(角度/2)度の範囲で判定します。

メモ:enchant.jsのよく使うイベントリスナー

0

enchant.jsは色々なイベントを追加できるのですが、ドキュメントがまだ少ないので適当にまとめてメモ

load
Gameをロードするときにトリガーする。初期設定用?

progress
画像を一枚プリロードするたびに起動する。画像が多い時にローディング画面を出すのにいいかも?

enterframe
フレームの開始時にトリガーする。
多分もっとも使う。

added
addChild等でノードを追加したときにトリガーする。配置したときの初期設定に便利。

removed
removeChild等でノードを削除したときにトリガーする。削除した後に何か処理したいときに便利。

touchstart
オブジェクトをタッチ(またはクリック)したときにトリガーする。割と頻度高め。

touchmove
オブジェクトをタッチしたまま移動したとき(ドラッグ)にトリガーする。
ドラッグ処理に使う

touchend
オブジェクトからタッチ(クリック)が離されたときにトリガーする。
ドラッグ処理の終わりに使う。

leftbuttondown&leftbuttonup
カーソルキーの左が押されたとき&離したときにトリガー。
同上で上下右ABボタンもある。たいていの場合game.input.leftで事足りる。

Scene関連は使ったことがないのでまだよくわからないです。

GWにいろいろenchant.jsのゲームを作りました。

0

9leapがGWの期間限定で大会を開いていたので、いろいろゲームを作ってみました。
ミニゲームなら三時間程度で一本できるのでいいですね。作りが荒いですが、暇つぶしに遊んで言ってみてください。

作品集

イロイッカイズツ
色の少ない順番にボタンを押していくゲームです。時間内に多く点数を稼ぎましょう。
ただし、間違った色をタップすると減点されるので注意。

果物仕分け人
フルーツをタップして、そのまま下の名前の書かれたボックスまでスライドしていって、そこで離してください。
全部の果物を仕分けられたらクリアーです。

そんな餌に釣られクマ
タップした位置にリンゴが置かれます。クマたちはそのリンゴめがけて移動しますので、りんごを食べられないようにうまく誘導して
ハートを回収しましょう。クマが外に逃げてもゲームオーバーです。

おはじき
おはじきです。青いおはじきをタップして、そのままスライドして狙いをさだめて離しましょう。
あまりスライドさせすぎると画面外に飛んでいってしまうので注意。

ブロック崩され
ブロックのほうを操作して玉をよけていってください。
出来るだけブロックを崩されないように玉をよけましょう。

すべてiphoneで確認しています。可能な限りiphoneでも操作しやすいように、タップだけで操作できるゲームをメインに作りました。

enchant.jsによる大会

0

現在 http://9leap.net/ でオープン記念・期間限定コンテスト「9leap 9Days Challenge!」というのをやっています。
どうも本来は25歳未満の応募資格があるようなのですが、GW中のみ年齢制限不問で、しかも商品にiPad2がもらえるらしいです。
というわけで突貫で作ってiPadなんかねらっちゃってます。

週末にもう2,3個ミニゲーム作りたいな。

Go to Top