デフォルトのmain.jsをいじる10,当たり判定に拡大を反映
前回、Zキーで拡大、当たり判定の処理…と作ってきて、一つ気になる事ができた。
"いくら拡大しても、当たり判定は変化しない"のだ。
試しに、
if (key.getKey("c")) { alert(this.star.width);}
という形でチェックしてみても、拡大前と拡大後で、width=横幅が変わっていない。
やはり大きくなったらその分だけ、当たり判定も大きくなって欲しい…
この問題をどうクリアするか…、何かを使える要素は無いかと、
[Documents]を開き、.starのクラスであるSpriteを"width"で探していたら、
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で作成。