そのすべての作業に行き、そのすべてのメモリを浪費する必要はありません。
XNAには、オブジェクトの位置をテストするための非常に正確で具体的な手段があります。
GraphicsDeviceManagerのgraphics.PreferredBackBufferWidthメソッドとHeightメソッドを渡すだけで、ウィンドウの幅と高さを取得できます。
そこから、オブジェクトがそれらの位置の長方形内にあるかどうかに基づいて、オブジェクトがゲームウィンドウに表示されるかどうかがわかります。
したがって、バックバッファの幅と高さを640x480に設定するとします。
次に、テクスチャの境界がその長方形内にあるかどうかを確認するだけです。
だから、これがあなたの関数です:
public void CheckIfWithinWindow(int width, int height)
{
Rectangle wndRect = new Rectangle(0, 0, width, height);
Rectangle carRect = new Rectangle(carPos.X, carPos.Y, carTexture.Width, carTexture.Height);
if (wndRect.Intersects(carRect))
{
//carTexture is within currently visible window bounds!
}
else
{
//carTexture is NOT within currently visible window bounds!
}
}
次に、この関数を、開始XNAクラスのUpdateメソッドから次のように呼び出すことができます。
public void Update(GameTime gameTime)
{
myCar.CheckIfWithinWindow(graphics.PreferredBackBufferWidth, graphics.PreferredBackBufferHeight);
}
お役に立てば幸いです。楽しむ。