tmlibの練習ブログ

自分流にtmlibを触っていきます。分かったことを解説。入門用になれば…?

デフォルトのmain.jsをいじる6,タイトルシーンに絵、キー対応追加

今回は前回で追加したTitleSceneに、タイトル画像とマウスではなくキーで進む、という改造をしてみる。

まずはタイトル画像から。

他にTitleSceneを説明してるサイトも余り見つからない…ので、前々回と同じくTitleSceneの、tmlibの元のソースコードを確認してみる。

// #TitleScene、tmlibの元ソースから
var texture = tm.asset.AssetManager.get(param.backgroundImage);

という一文があった。


これはまさに前々回でやったことだ(画像の直の読み込み)
paramは多分パラメーターの略だし、更に他のコードを見てると、"param.title"みたいに、既に設定した値を用いる書き方もしている。
このparamがsuperInitやらで毎回、まとめて設定したセットに間違いないだろう…


で、そのparamの.backgroundImageを使っている。
じゃあ

this.superInit({
    title :  "タイトル画面",
    width :  SCREEN_WIDTH,
    height : SCREEN_HEIGHT,
    backgroundImage : "TitleImage" // #追加
}

みたいに設定すれば、バックグラウンドイメージ=背景として使われる気配?
だがよく見たらtm.asset.AssetManager.get(…とあるから、getにはloadが前もって必要だった。


(直前に書くと読み込みが間に合わなかったりするから)main.jsの一番上の辺り、ASSETSを宣言している下の所にでも書き加えておこう。

// アセット 
var ASSETS = {
	"bigChick": "neko.png"
};
//画像読み込み
tm.asset.AssetManager.load("TitleImage" , "title.png"); // #追加

title.pngは再びお絵かきして、用意しておこう。そしてそれをindex.htmlのあるフォルダに放り込んで再読み込み…


f:id:superchineseland:20131113213130j:plain

表示された!

さてもう一つやりたいのは、"今は画面タッチだけど、キー押しで次のシーンへ"ということ。

ここは、this.addEventListener("pointingend"…
という所で設定してるっぽいから、"pointingend"って所を変えればOKだよな…と思っていた。


それでGoogle検索もしたし、コード内もだいぶ探したけど、どうもこういった形でのキー受付はまだ対応してないっぽい!?
tmlibの作者さん:https://github.com/phi-jp/tmlib.js/issues/83


諦めかけたけど、要は前回でも推測した通り…"MainScene"でもやっている通り、
update: function(app) が使えるのではないだろうか?(同じ"シーン"なのだし)

// #TitleSceneに追加
update: function(app) {
        var key = app.keyboard;
        if (key.getKey("z"))  {
            // シーンの遷移
            var loadingScene = tm.app.LoadingScene({
                assets: ASSETS,
		nextScene: MainScene,
		width: SCREEN_WIDTH,
		height: SCREEN_HEIGHT
            });
            this.app.replaceScene(loadingScene);
        }
}

TitleSceneにMainSceneでもある、キー受付のgetKey、それと、その中でシーン遷移の処理を組み合わせてみた。


試すと…確かにZキーで次の画面へ行けるようになった!
(ついでにタッチには反応させたくないので、this.addEventListener("pointingend"…の部分は丸ごと消した))


ここまでのコード(main.js)
http://spchinese.s601.xrea.com/tmlib_text/main_2013_11_13.txt
*バージョンは、tmlib.js 0.2.0で作成。


次回:デフォルトのmain.jsをいじる7,当たり判定追加 - tmlibの練習ブログ