tmlibの練習ブログ

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

デフォルトのmain.jsをいじる1,キー入力可能に

まず公式(http://phi-jp.github.io/tmlib.js/)から落として、
index.htmlをテキストエディターで開くと

<script src="lib/tmlib.js"></script>
<script src="http://dat-gui.googlecode.com/git/build/dat.gui.js"></script>
<script src="https://raw.github.com/mrdoob/stats.js/master/src/Stats.js"></script>
<script src="main.js"></script>


と書いてある。


tmlib.jsによってマウス受付とか、画像描画が簡単になる。
そしてmain.jsでそれを使い、今回で言うと星が回るとかの処理が書いてある。
最後に、それら.jsをindex.htmlに埋め込んでいる。
 
という訳で以後は、main.jsをテキストエディターで開いて編集する。

デフォルトではマウスクリックで回転するけど、今回は"キーボードを押したら"、"星の大きさが変わる"ようにしたい。
今回はキー受付までをやってみよう。


「tmlib キー」で検索する(Google)と、http://jsdo.it/phi/9mEV が出てくる。


今回はここを参考にしよう。


他の事はまだ分からないけど、ざっくりと、

var key = app.keyboard;
if (key.getKey("left"))  { player.x-=4; }

がキーボード入力の受付を示しているっぽい。(keyboardって書いてあるし)
多分left、キーボードの左キーの入力を拾えるのだろう…と想像。


今回はzに対応させたいので、
if (key.getKey("z")) { させたいこと(今回は拡大縮小) }
になるだろうか。


これをどこに置けばいいか、main.jsに戻って観察してみる。
"マウスを押すと星が回転"も、"キーを押して拡大縮小"も、同じ所に置けばいい気がする…?


すると

// クリック or タッチ中は回転させる
if (app.pointing.getPointing() == true) {
    this.star.rotation += 15;
}


注釈の文章からして、ここが回転させるところらしい。
その後に、これを貼ってみる。つまり

if (app.pointing.getPointing() == true) {
    this.star.rotation += 15;
}
var key = app.keyboard;
if (key.getKey("z"))  { させたいこと(今回は拡大縮小) }


という形だ。
({}は別に改行しても、しなくてもいい。見やすいようにする)


ここから、させたいこと="拡大縮小はどう書けばいいのだろう"と考えるのだけど、まずこれで本当にキーの入力受付ができているか、知りたい。
つまりZキーを押したら、何らかの分かりやすい反応が返ってくれると、うれしい。


こういう時に使うものとして
alert("aaa");
がある。


さきほどの"させたいこと"にこれを当て嵌めてみる。すなわち

var key = app.keyboard;
if (key.getKey("z"))  {alert("aaa");}


これでindex.htmlを再びブラウザで開くか、F5押してページ更新してみる。
で、画面を一度クリック、Zキーを押すと…
メッセージが出たはず。
f:id:gamecome:20131106191046j:plain

Zキーで入力ができるようになった。


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


次回:デフォルトのmain.jsをいじる2,拡大縮小のプロパティ(要素)を探す - tmlibの練習ブログ