Are*_*osa 0 c# drawing monogame spritebatch
我正在编写 ac# monogame。我有一个英雄,他可以射击。我想要那个,当他击中一个精灵(这里:一个简单的球)时,这个球应该在地图上被删除。
这是我的绘画方法
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();
}
Run Code Online (Sandbox Code Playgroud)
我没有删除地图上球的代码,因为我不知道它。我有更多代码,但在这里展示它太多了,我认为这对我的问题并不重要。在这段代码中,我的英雄可以在精灵上行走和射击。一切都很完美。总而言之,我的问题是,我想用精灵射击,然后精灵应该消失。感谢帮助
您的代码是有限的,但有多种方法可以做到这一点。
在我看来,您最好的选择是创建一个新类来表示球并使其具有“IsAlive”属性。一旦球死了,您将其标记为“IsAlive = false”。在 draw 方法中,您在绘制之前检查球是否还活着。
另一种方法,因为你最终可能会有多个球,所以有一个这些球对象的数组。一旦一个对象被杀死,你就可以将它从数组中删除。在您的 draw 方法中,您只渲染数组中的对象。