1

Java を使用して 2D アイソメトリック エンジンの始まりを書きました。タイルの順序やマップ上のオブジェクトの深さの並べ替えなど、ほとんどの基本を説明しました。しかし、私は自分の方法を本当に面倒にしないと解決できないように見える問題に遭遇しました。

問題は、私の等角図の世界では、オブジェクトのベースがあるタイルが画面にレンダリングされるときに、各オブジェクトがレンダリングされることです。ただし、一部のオブジェクト (建物など) は高さが高く、レンダリングされていないオフスクリーン領域からレンダリングされた画面領域まで伸びる可能性があります。画像をレンダリングするために存在します。

私の質問は、ベースが画面外の領域にあるときに、高さの値が大きいオブジェクトがレンダリングされた領域に存在する必要があることをどのように検出するのでしょうか? これは非常に CPU を集中的に使用するため、マップ全体 (画面外の領域を含む) をレンダリングしたくないので、この問題のある領域を検出できるアルゴリズムまたは方法を探しています。

編集:以下の問題を視覚的に表すために質問を更新しました。

オブジェクトの高さがレンダリング可能な領域に達したことを確認するにはどうすればよいですか?

4

2 に答える 2

2

「タイル」の概念を変更して、「エンベロープ」のようなものを含めることはできますか...最大の高さと幅を区切る長方形ですか? たとえば、「大きな高さ」のオブジェクトを作成/タイルに割り当てた場合、そのエンベロープの高さを上げることができます。次に、エンベロープが画面とオーバーラップするタイルのみをレンダリングする必要があります。

于 2013-08-05T12:32:05.453 に答える
0

オブジェクト「boolean isVisible(Rectangle2D bounds)」にメソッドがあります。オブジェクトを並べ替える前、および並べ替えられたオブジェクトをレンダリングする前に、このメソッドを呼び出します。

于 2013-07-08T22:28:35.667 に答える