CoffeeScript×enchant.js、enchant.jsをCoffeeScriptで書く。CoffeeScript2011年11月25日金曜日CoffeeScript×enchant.js、enchant.jsをCoffeeScriptで書く。enchant.jsをCoffeeScriptで書直しました。GitHubenchant.coffeeというファイルがあるはずです。サンプルはexample/action-coffee/とexample/action-coffee2/以下に入っています。僕はCoffeeScriptにハマっています。CoffeeScriptは美しいからです。functionを書かなくていいし、全て式なのでreturnを書かなくていいし、後置でifが書けるし、デフォルト引数もあるし、内包表記が凄く便利だし、?オペレータもかなり便利です。僕はenchant.jsにもハマっています。enchant.jsは素早くゲームが作れるし、スマートフォンでもサクサク動くし、書いていて楽しいから。思ってた時期にHotRubyからenchant.jsを使う記事を読みました。RubyでHTML5ゲームを作ってみるその中にはこう書かれていました。CoffeeScriptで書けばいいじゃん、という意見もあるだろうけど、ここでは聞かなかったことにする。僕はCoffeeScriptで書けばいいじゃん、と思った。思ったからには書かねばならない。情熱が覚めないうちに。CoffeeScriptらしく書けてませんが公開します。ちなみにenchant.coffeeの行数は2295行、元のenchant.jsが2685行なので14.5%、390行程度ソースコードの行数が減りました。"chara1.gif")game.rootScene.addChild(bear)game.start()もちろんenterframeだけでなく他のイベントにも対応しています。実装について全体的に不要なfunctionを置換したりインデントを揃えるので時間がかかった。@[ev]?))(ev))enchant.Eventクラスの持つイベント名に対して、それぞれイベントリスナを追加しています。イベントを受信した際に、クラスがそのイベント名と同じ名前のメソッドを持っていれば、それを実行するようになっています。現状サンプルのゲームが動くメソッドをオーバーライドする形でのイベントドリブンプログラミングが出来るCoffeeScriptのデバッガがないのでデバッグしづらいGitHubにてオープンソースで公開これからバグがあれば直しますので@hanachin_までご報告ください。enchant.jsの機能追加等に追従出来るようにしようと考えています。後は9leapのプラグイン等をCoffeeScriptで書直します。enchant.coffee自体も整理したいのですが、まずは9leapで実際に使えるようになることを目指します。何か質問等ございましたらTwitterで@hanachin_宛にmentionをください。以下のアドレスまで連絡をください。ofギークハウス沖縄調べてみてちょっと気になる物件RubyでシンプルなTwitterクライアント書いたCoffeeScript×enchant.js、enchant.jsをCoffeeScriptで書く。