jgame.js 1.0のリリース

自分が使うための俺々フレームワークなので、そんなに声を大にして言ってる感じになるとお恥ずかしくなってしまうんだが、一応jgame.jsのversion 1.0をリリースしたのでメモがてら。
http://sourceforge.jp/projects/jgame-js/releases/


でも実はちょっとバージョン番号間違えてて、てっきり0.8までバージョン上げたつもりになってたから、次は1.0だよなと思ってやったんだけど、0.8だったのは雪助であってjgame.jsは0.4だったんだよね。
0.4なら今回のは0.5にして、もうちょい直したのを1.0にしてもよかったんだけど、コミット後に気付いたのでまあいいやってことで。。


変更履歴的に、今回加わったのだとフィルタとエフェクトが一番派手だろうなぁ。
フィルタは、世界創造ツールでも使ったpaintbrush.jsを移植したもの。
リアルタイム処理向きじゃないんだけど、WebGL使わない限りリアルタイム処理向きのはかけないので仕方ない。技術的にはフィルタ適用は、drawImage -> getImageData -> データ編集をjsの遅いループでやる -> putImageDataになるのですんげー遅い。他の方法あるなら誰か教えて。


色変換だけならglobalCompositeOperation + drawImage + fillRectとかやった方が早いだろうとか色々あるけど、あんまり考えすぎて実装スピードが鈍るのも嫌だったので、とりあえずざっと作った。
CreateJS系と比べるとちょっと種類少ないけどなぁ。あっちから移植した方がよかったかもだけど、まあいいや。
フィルタのサンプル: http://jgame-js.sourceforge.jp/filter-image.html


エフェクトはシーン切り替えに使う想定なんだけど、まあ、PowerPoint先生がサポートする代表的なエフェクトからいくつか、あとフィルタ使ってさくっと実装出来そうなのをいくつかサンプルがてら入れといた。
重要なのは仕組み作るのであってデフォルトエフェクトの質はそんなに重要じゃないんだけど、思ったよりいい感じになったと思う。
エフェクトのサンプル: http://jgame-js.sourceforge.jp/effect-scene.html


あとは・・サウンドサウンドサポートに力入れるとえらいことになるようなってことで、サウンドは最低限のサポートで抑えてSoundJSとか使うことを推奨してる。
ということで自前のしょぼいサウンドとSoundJSのサウンドと、両方組み込む場合のサンプル入れておいた。
自前: http://jgame-js.sourceforge.jp/sound-simple.html
SoundJS: http://jgame-js.sourceforge.jp/sound-soundjs.html
でも両方ともpreload処理がローカル環境でもすげー重くてちょっとびびった。
mp3をwebゲームでBGMとして使うのは、まだちょっとしんどそうだね。


他まあフルスクリーンを一応サポートしてみたり、LineやShapeで描いた図形をマスクとして使えるようにしてみたり、ちょこちょこ。
とりえあず機能としては十分になったんじゃないのとは思う。
そろそろ当初目標の"変換後のJavaScriptファイルが5000行以内"というリミットに近づいてきたので、後はリファクタリングしつつ、余分な機能を外部モジュールにまわしたりしつつ、コンパクトさを保ちながらぼちぼち運用してければってとこっすな。


次のバージョンアップではキーボードサポートの廃止とか、game.currentSceneとかださい設計の修正とかをやるので確実に旧バージョンに影響出るから、ユーザいたらブランチ切るしいなきゃtrunkでそのまま突っ走るつもり。
まあ不思議のすごろくの開発完了と同時に2.0が出せたらいいんじゃないかってとこかね。
7月くらいかな。




あ、ロゴ作るの忘れてた。