我正在尝试检查 2 个类之间的 Rectangle 碰撞;Game1.cs 和 Terrain.cs。
不知何故,当我更改我的 Terrain.cs 构造函数以包含 Rectangle 来检测碰撞时,它需要 Rectangle,但不能在 Update 方法中更改它。例如,我做了一个名为 playerRectangle 的 Rectangle,并在构造函数中请求了一个 playerRectangle Terrain
,我在构造函数中添加了代码Terrain
:
this.playerRectangle = playerRectangle;
在 Game1 更新方法中,我创建了一个更新对象数组的 for 循环Terrain
。我通过在 Terrain.cs 更新方法中添加代码来测试它是否会改变 playerRectangle 的位置:
playerRectangle.X = 200;
原来的 playerRectangle X 是 450。它保持在 450。没有任何变化。
任何人都可以在这里找到问题吗?
地形构造函数:
public Terrain(ContentManager contentManager, Rectangle playerRectangle, Texture2D chunkSprite, int y, int x)
{
chunks = chunkSprite;
this.y = y;
this.x = y;
this.playerRectangle = playerRectangle;
//Load drawRectangle
drawRectangle = new Rectangle(x, y, 50, 50);
}
for循环加载:
for (int i = 0; i < terrain.Length; i++)
{
number2 += 50;
terrain[i] = new Terrain(Content, drawRectangle, sprite, 550, number2);
}
更新:
for (int i = 0; i < terrain.Length; i++)
{
terrain[i].Update(gameTime);
}
并绘制:
for (int i = 0; i < terrain.Length; i++)
{
terrain[i].Draw(spriteBatch);
}