読者です 読者をやめる 読者になる 読者になる

hakobera's blog

技術メモ。たまに雑談

enchant.js ソースコード・リーディングを開催しました

enchant.js ソースコード・リーディング - [PARTAKE]

私の適当なtwitterでのつぶやきにid:nakamura001さんが反応してくれたので、脊髄反射的に上記の勉強会を開催しました。

なにげに初勉強会主催で、人があつまるかな、と不安だったのですが、蓋を開けてみれば、9名の方が参加してくれて、とても熱い会になりました。前半が説明、後半がハッカソンでした。ハッカソンは盛り上がりすぎて、予定時間を2時間ほどオーバーするほど楽しかったです。

以下簡単にまとめます。

enchant.js 概要解説

拙作ですが、enchant.js の概要解説をしました。

id:namakura001 さんによる enchant.js ゲーム開発入門

以下のサンプルページを利用して、分かりやすく解説していただけました。

nakamura001 @ ウィキ - トップページ/JavaScriptゲーム/ライブラリ/enchant.js/サンプル

ハッカソン

ゲーム作ったことがない人がほとんどだったのですが、みんな3時間程度でゲームを1つ作成できており、「enchant.js 良い!」という感想がほとんどでした。以下、公開されている皆様の作品を。

おまけ

主催者のくせに私だけ、ゲームを作っていません orz

代わりに LocalStorage を利用した簡易Save/Loadライブラリを書いてみました。改造するなりなんなりご自由にどうぞ。

LocalStorage Wrapper for enchant.js — Gist

カスタムイベントの練習で作りました。使い方は以下のような感じです。

// イベントリスナーを設定
bear._ID = 'bear';
bear.addEventListener(Storage.Event.SAVE, function(e) {
	var db = e.db;
	db.set(this._ID, { x: this.x, y: this.y });
});

bear.addEventListener(Storage.Event.LOAD, function(e) {
	var db = e.db;
	if (db.contains(this._ID)) {
		var pos = db.get(this._ID);
		this.x = pos.x;
		this.y = pos.y;
	}
});

// Game の onload などで以下のコードを書く
Storage.load(bear);

// Save したいタイミングで以下のコードを書く。
Storage.save(bear);