问题描述
this.TileMap = Content.Load<TiledMap>("Maps/MyTileMap");
_tiledMapRenderer = new TiledMapRenderer(GraphicsDevice,this.TileMap);
我想在第 0 层和第 1 层之间渲染我的普通精灵。有点像这样:
DrawLayer(0,0f);
foreach(var sprite in this.Sprites)
{
sprite.Draw(spriteBatch,gameTime);
}
DrawLayer(1,1f);
sprite.Draw 的作用:
var destRectangle = new Rectangle((int)Position.X,(int)Position.Y,Texture.Width,Texture.Height);
spriteBatch.Draw(Texture,destRectangle,null,Color.White,Vector2.Zero,SpriteEffects.None,0.2f);
而 DrawLayer 可以:
var layer = this.TileMap.Layers[idx];
_tiledMapRenderer.Draw(layer,this.Camera.GetViewMatrix(),depth: depth);
但我的常规精灵仍然是最重要的。
地形在第 0 层,树在第 1 层(显然)。
我认为提供 layerDepth 应该确保正确的绘制顺序,但显然不是。
Any pointers on how to fix this?
或者,或者,
how can I add my sprites to a layer?
我听说这是一个选项,但我一直不知道怎么做。