2012-03-09 5 views
0

いずれかが自分の画面サイズに基づいて、任意の時点でユーザの画面に表示されますタイルの最大数を計算するJavaScript式を知っていれば、私はたとえば...スクリーンサイズから最大等角タイル?

を思ったんだけど:私たちが言うなら 画面サイズは1200ピクセル×600ピクセル、タイルは64ピクセル×32ピクセルです。

鳥瞰図ではこれは計算が簡単ですが、アイソメトリックな点では、私のコードでこのような計算をどのように実装するかを理解するのが少し紛らわしくなります。

計算方法について洞察はありますか?

var verticalCount = Math.floor(windowHeight/tileHeight); 
    var horizontalCount = Math.floor(windowWidth/tileWidth); 
    var totalCount = verticalCount * horizontalCount; 

あなたはまた、部分的に収まるタイルをカウントしたい場合(ウィンドウによって切り取ら取得)、ちょうど:あなたは(カットオフを得ることなく)完全に合わせタイルのみをカウントしていると仮定すると、

+0

飛行機の詳細はどうですか?例えば。スクリーンからの距離と角度? –

答えて

0

Math.floorの両方のインスタンスを上記のMath.ceilに変更します。

+0

これは鳥瞰図でのみ機能し、等角投影では四隅すべてに空白ができます。タイルは本質的にある角度をなすので、数学は異なる。私はすでにあなたにアプローチしてみました:P – Sir

+0

この回答が十分でない場合、私はそれを受け入れないことをお勧めします。 –

0

あなたはアイソメトリックタイル、ではないボードで画面をいっぱいにしたい、と表示される可能性が半分のタイルをカウントしていない場合は、次の式は

var cols = Math.floor(windowWidth/tileWidth) 
var rows = Math.floor(windowHeight/tileHeight) 
var totalCount = (rows * cols) + ((rows-1)*cols) 

これはあなたの数を与えるだろうその空間に収まる完全な等尺性タイル。

関連する問題