今回もメモを投下しておきます。
入門enchant.jsでゲームを作ろう
- ecnhant.jsとは?
- HTML5をベースとしたJavaScriptベースのゲーム開発のライブラリ
- オープンソース、MITライセンス
- enchant.js - A simple JavaScript framework for creating games and apps.
- ブラウザとテキストエディタだけで開発出来る
- HTMLとJavaScriptを書いて、ブラウザにドラッグアンドドロップすれば動く
- マルチプラットフォーム
- プラグインが豊富で手軽にゲーム開発が出来る
- 作ったもの
- ゲーム「つちねこ集め」 | たいにゃん公式サイト
- SUPER TAINYANS | たいにゃん公式サイト
- マリオっぽい横スクロールゲーム
- すごく難しい
- enchant.jsの使い方
- 今日は導入部分だけ
- 読み込み
- enchant.js本体のJavaScriptと、ゲーム本体のJavaScriptを読み込む
- 要素を1つ用意する必要がある
- JavaScriptの中身
- enchant(); を最初に呼び出す
- window.onloadでGameオブジェクトを作る
- Gameクラスのonloadにゲームの内容を書く
- 画像を読み込む。
- game.preload(画像ファイルパス);
- Spliteクラスを作る
- スプライト画像の1つのサイズで表現する。
- game.rootScene.addChild()で画像を配置する。
- キー入力で動かす
- enterframeイベントで、キー入力を拾って動かす
- if (game.input.right) this.x++; みたいな感じ
- クラス定義と継承
- JavaScriptにおいて普通はプロトタイプベースで継承します
- クラスベースのオブジェクト指向言語に慣れ親しんだ人からすると、プロトタイプベースの意味がわからないことになる
- enchant.jsでは次のようにする
- Kuma = Class.create({initialize: function(){/* 初期化処理 */}, method: function() {}});
- Higuma = Class.create(Kuma, {initialize: function() {/* 初期化処理 */}});
- new Higuma().method(); が呼び出せる
- 簡単に継承が実現出来る
- 便利なプラグイン
- まとめ
- ゲーム開発が身近になる
- マルチプラットフォーム
- 独自クラス定義でクラスベースっぽくかける
- プラグインが色々あるので、楽にカスタマイズ出来る
- QA
- ファイル分割はどうしてますか?
- 特に考えたこと無いです。すみません。
- localStorageは使えますか?
- 理屈では使えるはずです
- 事例は?
- 沢山投稿されているサイトがあります。
- 9leap : トップページ - どこでも遊べる、投稿型ゲームサイト
はじめようBackbone.js
資料 → はじめよう Backbone.js
- 目的
- Backbone.jsがどんなものかわかる
- Backbone.jsのメリデメがわかる
- 聞いたからと言ってすぐに出来るようになるわけではない
- 他のフレームワークの比較は作ってない
- Backbone.js
- JavaScriptのMVCフレームワーク
- 大規模開発で効果を発揮する
- 割りと知名度は高い
- RailsやCacePHPなどとは異なる
- オブザーバーパターン
- オブジェクトの状態を観察するようなプログラムで使うデザインパターンの一つ
- JavaScriptはイベントを関しするイベント駆動プログラミング
- Backboneではオブジェクトの状態変化も観察する
ーMVC
-
- View
- DOMの監視と操作
- Model
- データの取得、保存、更新、削除
- Collection
- Modelの集合、Controllerではありません。
- Router
- URLを監視する
- History
- Routerの履歴を監視する
- Controllerと言うオブジェクトは存在しません
- M:Model, Collection
- V: View
- C: Router, History
- MとVが大事
- View
- 具体的
- ViewがModelとColletionを監視する
- ユーザがクリックなどの操作でイベントを発生させると、Viewが反応する
- 反応したViewがModelへ処理を移譲する
- Modelが通信などを行う
- Modelが状態変化すると、Viewが状態変化を監視しているので、表示処理などを行う
- Collectionは?
- 一覧を扱うのがCollectionになります。
- ModelとCollectionで相互に関しする感じになります。
- ここまでのまとめ
- Viewが、ユーザ、Model、Collectionのイベントを監視する
- データを取得更新すると、Viewがイベントを動かす
- デモとソースの解説
- WEBAPIを叩いて、週間天気を表示する
- jQuery, underscore.js, Backbone.jsを読み込む。
- Backbone.jsはunderscore.jsに依存しているので必要
- underscore.js単体で使っても便利
- ・・・Viewで使う
- 作ったViewとModelのJavaScriptを読み込む
- 最後に、ModelとViewを実体化する
- Model
- View
- el: にHTMLの要素を指定する。
- events で監視イベントを設定する、 イベントとどこ?を設定
- initialize: 初期化を行う
- listenToでモデルを監視する
- model のchangeイベントを監視し、this.renderを呼び出す。
- this.model.set(値, {slint: true});
- 第2引数のsilentは、モデルに値を設定するとchangeイベントが発生してしまうが、発生させないようにするため
- 最後に
- BackboneJSでは大規模開発で有効なので、このデモくらいであれば使わない方が早いですよ。
- 作者: 蒲生睦男
- 出版社/メーカー: シーアンドアール研究所
- 発売日: 2013/01/19
- メディア: 単行本(ソフトカバー)
- クリック: 2回
- この商品を含むブログ (4件) を見る
- JavaScriptの中身