我正在写一个c#单人游戏。我有个英雄,他会开枪。我希望,当他击打一个精灵(这里:一个简单的球)时,这个球应该在地图上删除。
这是我的绘图方法
public void Draw(GameTime gameTime)
{
mMap.Draw(ScreenManager.mSprites);
ScreenManager.mSprites.Begin();
ScreenManager.mSprites.Draw(mTest, mHeroPos, Color.White);
ScreenManager.mSprites.Draw(mBall, new Rectangle(120, 120, 50, 50), Color.White);
DrawEffects();
ScreenManager.mSprites.End();
}我没有删除地图上的球的代码,因为我没有这个想法。我有更多的代码,但在这里显示它太多了,我认为这对我的问题并不重要。在这段代码中,我的英雄可以在精灵上行走和射击。一切都运行得很完美。总而言之,我的问题是,我想在一个精灵上拍摄,然后这个精灵就应该消失了。感谢你的帮助
发布于 2019-12-03 01:56:36
您的代码是有限的,但有多种方法可以做到这一点。
在我看来,最好的办法是创建一个新类来表示球,并使其具有"IsAlive“属性。一旦球死了,你就把它标记为"IsAlive = false“。在draw方法中,在绘制球之前检查球是否处于活动状态。
另一种方法,因为您最终可能会有多个球,是拥有这些球对象的数组。一旦一个对象被杀死,你就把它从数组中移除。在draw方法中,仅呈现数组中的对象。
https://stackoverflow.com/questions/59139405
复制相似问题