如何检查精灵对象是否可见?

时间:2010-12-18 21:46:05

标签: ruby graphics sdl

我有一个包含这些方法的Sprite类数组:xywidthheight。它们根据z属性进行排序。最后一个是最重要的。我也有屏幕尺寸。我怎么知道特定的Sprite是否可见?

1 个答案:

答案 0 :(得分:2)

“使其工作”的最简单方法是以反向Z顺序渲染。那是最接近的。

否则你有N ^ 2问题发现遮挡。您可以通过构建遮挡树来优化它。

另一种选择可能是深度测试缓冲区。

class Sprite
  def occluded?(other)
    # check collision in X and Y
    # if they are colliding and self.z < other.z then self is partially or fully occluded
  end
end