Work Records

日々の作業記録です。ソフトウェアエンジニアリング全般から、趣味の話まで。

tl.enchant.jsもといenchant.jsが便利すぎた

enchant.jsでアクション系のゲームを作るときに、
enterframeで毎フレームspriteの移動を書いていると非常に重くなる。

hoge.addEventListener('enterframe', function() {
    this.x += 1;
});

ブラウザで動かす分には良いのだけど、
iphone、ましてやandroidで動かしだすとカクカクしてしまって
全く使い物にならない。

色々とググっているとどうやらtl.enchant.jsというものがあるらしい。
というか、v0.4.4からはenchant.jsに導入されていた。
使い方は非常に簡単で、上の例の動きをさせたい場合には、

hoge.tl.moveBy(100, 0, 100);

みたいに書ける。これは、x方向に100を100フレームかけて動くという意味。
上のようにごりごり書いても書けるのだけど、
実行スピードに差があるのでtl.enchant.jsを使える場面では使うべき。

ちなみに、数珠つなぎにいくらでもつなげられます。

hoge.tl.moveBy(100, 0, 100).moveBy(100, 100, 100).moveBy(0, 100, 100).moveBy(100, 100, 100);

さらに、イージングが使えるので、
アクションゲームなどで絶対に必要な、
ふわっとした移動や、跳ねて移動、みたいなのも簡単に書ける。
何だこれは、便利すぎるぞ。

もっと早く知りたかった。。。

参考
http://wise9.jp/archives/7418
http://wise9.github.io/enchant.js/doc/core/ja/symbols/enchant.Timeline.html
http://www.saturn.dti.ne.jp/npaka/enchant/animation/index.html
http://creator.cotapon.org/articles/flash/actionscript%E3%81%AE%E3%83%88%E3%82%A5%E3%82%A4%E3%83%BC%E3%83%B3%E5%88%B6%E5%BE%A1%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AAtweener%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9


自作アプリ紹介コーナー
https://itunes.apple.com/jp/app/tokimekiekisupuresustation/id660044163?mt=8
f:id:kenjiszk:20130706222734p:plain