2016-09-14 14 views
1

私は幅と高さ(テクスチャサイズ)を持つSpriteオブジェクトを持っています。画面上のサイズに基づいたスプライト初期尺度

スプライトを元のテクスチャサイズと同じサイズで画面に表示したいとします。

シーンのサイズ、カメラの位置、テクスチャのサイズが一定値ではないので、私はスプライトを拡大縮小する方法が必要です。

ほとんどの場合、カメラはパースペクティブですが、いくつかの場合、それは正書法です。

私はスケールのために2つの式が必要です。

私はズーム時にスプライトサイズを一定にする方法についていくつかの答えを見つけましたが、この計算では初期スケールは不明です。

ありがとうございました。

答えて

0

これと似たような方法の1つは、画面の初期(最適)サイズを作成し、画面の変更に基づいてノードを拡大することです。

これを行う最も簡単な方法は、スプライトが望む正確なサイズのシーンの初期サイズを持つことです。あなたは、任意のズームを行う前に、このを呼び出すと、あなたはそれがONCE呼び出す:あなたは(たとえば、ズームなど)、画面のサイズを変更するたび

は今、あなたはどのでスケールを見つけなければなりません画面が変更されました:

var scaleWidth = self.size.width/initialScreenWidth 
var scaleHeight = self.size.height/initialScreenHeight 

を今、あなたはこれらの2つの尺度を持っていることを、あなたがしなければならないすべては、次のとおりです。

texture.xScale = scaleWidth 
texture.yScale = scaleHeight 

画面のサイズを変更するたびに尺度を作成し、テクスチャの寸法を設定する必要があります。 (ほとんどの場合Update機能ではスムーズに見えます)。

希望すると便利です。