【发布时间】:2014-09-03 22:03:13
【问题描述】:
我正在制作一个玩家将四处收集奇异果的游戏。当玩家触摸猕猴桃时,我希望猕猴桃精灵永久消失。到目前为止,我只能在玩家触摸猕猴桃精灵时让它们消失,而当玩家离开猕猴桃矩形时,猕猴桃精灵会重新出现。
这是我在 Kiwi 类中创建的 intersect 函数:
public void Intersect(Rectangle playerRect, SpriteBatch spriteBatch)
{
foreach (Rectangle kiwiRect in kiwiRectangle)
{
if (!kiwiRect.Intersects(playerRect))
{
isCollected = false;
}
else
isCollected = true;
if (!isCollected)
{
spriteBatch.Draw(kiwiTexture, kiwiRect, Color.White);
}
}
}
然后我把这个函数放在游戏主类的Draw函数中。
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.CornflowerBlue);
spriteBatch.Begin();
if (gameState == GameState.Playing)
{
GraphicsDevice.Clear(Color.Green);
kiwiClass.Intersect(Sprite.spriteDestinationRectangle, spriteBatch);
Sprite.Draw(spriteBatch);
}
spriteBatch.End();
base.Draw(gameTime);
}
【问题讨论】:
-
嗯,您似乎没有在每个游戏对象上使用可覆盖的 Draw 方法。你能准确地展示这个 intersect 方法的去向吗?你的奇异果是 DrawableGameComponents 吗?或者他们只是在那个班级某个地方的列表中?