【发布时间】:2014-07-11 22:03:28
【问题描述】:
我正在 XNA 中制作一个游戏,玩家在屏幕上移动“收集”奇异果(动物,而不是水果)。我想让它在玩家与猕猴桃碰撞时,猕猴桃精灵消失。
到目前为止,我只能在发生碰撞时让所有的猕猴桃消失。我只希望每个单独的精灵在碰撞中消失。我对所有的猕猴桃使用相同的精灵。
这里是碰撞函数:
void Collision()
{
if (!isCollected)
{
foreach (Rectangle kiwi in kiwiRectangle)
{
if (kiwi.Intersects(Sprite.spriteDestinationRectangle))
{
isCollected = true;
}
}
}
}
kiwiRectangle 是一个数组,其中包含围绕绘制的每个奇异果精灵创建的矩形。
然后在 Draw() 函数中:
if (!isCollected)
{
foreach (Vector2 position in kiwiPosition)
{
spriteBatch.Draw(kiwi, position, Color.White);
}
}
【问题讨论】:
-
您需要跟踪收集了哪些猕猴桃。您将在一个循环中遍历所有这些,因此您需要跟踪与将标志设置为 true 时对应的那个。