tmlibの練習ブログ

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

デフォルトのmain.jsをいじる10,当たり判定に拡大を反映

前回、Zキーで拡大、当たり判定の処理…と作ってきて、一つ気になる事ができた。
"いくら拡大しても、当たり判定は変化しない"のだ。


試しに、
if (key.getKey("c")) { alert(this.star.width);}
という形でチェックしてみても、拡大前と拡大後で、width=横幅が変わっていない。


やはり大きくなったらその分だけ、当たり判定も大きくなって欲しい…
この問題をどうクリアするか…、何かを使える要素は無いかと、
[Documents]を開き、.starのクラスであるSpriteを"width"で探していたら、


f:id:superchineseland:20131118143446j:plain

setSize()
サイズ(幅, 高さ)をセット ...

という物を見つけた。


横幅と高さは再指定できるようだ。
あとは幅と高さに拡大値を反映させる…のだから、計算としては

this.star.setSize(this.star.width * this.star.scaleX , this.star.height * this.star.scaleY);

この形でいけるはずだ。
(基本の横幅(width)が64として、拡大率が1.2なら 64*1.2になる…という計算)


これを拡大を行っている箇所に置いてみる。

if (key.getKey("z"))  { 
	this.star.scaleX += 0.1;
	this.star.scaleY += 0.1;
	this.star.setSize(this.star.width * this.star.scaleX , this.star.height * this.star.scaleY); // #追加
}


これで拡大に合わせた判定ができるようになった。


…だが少し、長ったらしくないだろうか?
それに今回はたまたま大きさを調整する命令(setSize)があったけど、もし用意されてなかった場合、手も足も出ないのでは?


という訳で次回は、関数の宣言と代入、の話へ。
これはJavaScript(tmlibも元はこれ)の根幹…と呼ばれている、らしい。


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


次回:デフォルトのmain.jsをいじる11,関数(function)って? - tmlibの練習ブログ