tmlibの練習ブログ

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

デフォルトのmain.jsをいじる2,拡大縮小のプロパティ(要素)を探す

前回:デフォルトのmain.jsをいじる1,キー入力可能に - tmlibの練習ブログ
までで、キー入力は可能になった。

しかし拡大縮小を行うにはどうすればいいのだろう。
main.jsをよく観察してみると、星を回転させているとおぼしき所は

// クリック or タッチ中は回転させる
(略)
this.star.rotation += 15;

また星を移動させている所だと

// マウス位置 or タッチ位置に移動
this.star.x = p.x;
this.star.y = p.y;

こんな感じ。


つまり
this.star.大きさ = 数値(何倍か?)
みたいな形になるのではないか、と頭が働く。


こういったその物体(ここではstar)が持つ要素を操作すると、それに応じた変化があるみたいだ。


角度はrotationで、座標はxやy。
では"大きさ"の要素名はなんだろう?
(「tmlib 拡大」とかでGoogle検索しても、今の所は出てこない)


こういう時は、公式に要素一覧が載っているので、それを見てみる。
http://phi-jp.github.io/tmlib.js/ 
ページを開き、[Documents >>]をクリック。

f:id:superchineseland:20131107175503j:plain

さて小難しげな画面が出てきたけども、調べたい一点だけ調べよう。
今回調べたいのはずばり、this.star がどんな要素を持っているか、だった。


this.star自体は変数であって、何でも入れられる。
何が入っているか、その"正体"が肝心。


そこでmain.jsの、this.starへ代入を行っている箇所を探してみる。

// 星スプライト
this.star = tm.app.StarShape(64, 64);

どうやらthis.starには tm.app.StarShape(64, 64) というのを入れてるみたい。


これは"tmの中にある、appの中にある、StarShape"という意味。
(tmはtmlib、appはapplicationの略かな?)
この場合、tmもappも経路で、最終的に辿り着いてるのはStarShapeということに。


検索窓にStarShapeと入力してみよう。候補が一つ出てくるだろうから、そこに飛ぶ。

f:id:superchineseland:20131107175555j:plain

>簡単に星形を描画できるクラス
と書いてある、どうやらこれで間違いなさそうだ。


その下の[Properties]という項目をざっと眺めてみる。
色々難しそうな単語が並んでいるが、"x"や"rotation"という知っている単語が、たまにある。
ここに要素が網羅されていそうだ。


さて(現時点で)rotationの下にある、"scaleX","scaleY"というのが知りたかった拡大率の要素名である。
(説明にはスケール、とだけしか書いてないが…)


試してみよう。
前回で、alertで動くか確認した部分

if (key.getKey("z"))  {alert("aaa");}

if (key.getKey("z"))  {
	this.star.scaleX += 0.1
}

こう変えてから、index.htmlを再読み込み。


すると…Zキーで星が横に伸びるようになる!

f:id:superchineseland:20131107180307j:plain

ちなみにscaleYにも足してあげればバランス良く拡大できるし、+= 0.1を -= 0.1 に変えれば縮小にもなる。


Zキーで拡大縮小ができるようになった。


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


次回:デフォルトのmain.jsをいじる3,画像を読み込んでみる。 - tmlibの練習ブログ