Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xna spritebatch的不同Begin()和End()块中的layerdepth_Xna_Sprite - Fatal编程技术网

Xna spritebatch的不同Begin()和End()块中的layerdepth

Xna spritebatch的不同Begin()和End()块中的layerdepth,xna,sprite,Xna,Sprite,我有两种不同的绘制方法,其中一种是Game1.draw() 另一个是DrawableGameComponent.Draw(),当我尝试在DrawableGameComponent的Draw方法中使用layerdepth绘制字符串时,它不起作用,它绘制到spritebatch的前面,layerdepth值不影响绘制 那么,问题是什么,我如何才能给layerdepth效果呢?要使用sprite批次进行排序,您需要使用接受SpriteSortMode的其中一个开始spritebatch 然后将设置为B

我有两种不同的绘制方法,其中一种是Game1.draw() 另一个是DrawableGameComponent.Draw(),当我尝试在DrawableGameComponent的Draw方法中使用layerdepth绘制字符串时,它不起作用,它绘制到spritebatch的前面,layerdepth值不影响绘制


那么,问题是什么,我如何才能给layerdepth效果呢?

要使用sprite批次进行排序,您需要使用接受SpriteSortMode的其中一个开始spritebatch

然后将设置为BackToFront或FrontToBack,然后使用spriteBatch绘制。它接受一个layerDepth,它是一个浮动,可以在0.0到1.0之间变化,为精灵提供排序

或者你可以使用SpriteSortMode.Deferred,在这种情况下,你画的第一件东西是在背景上画的,第二件东西是在背景上画的,等等


请注意,当您绘制部分透明的精灵时,建议的排序模式为BackToFront。

要使用精灵批次进行排序,您需要使用接受SpriteSortMode的其中一个开始spritebatch

然后将设置为BackToFront或FrontToBack,然后使用spriteBatch绘制。它接受一个layerDepth,它是一个浮动,可以在0.0到1.0之间变化,为精灵提供排序

或者你可以使用SpriteSortMode.Deferred,在这种情况下,你画的第一件东西是在背景上画的,第二件东西是在背景上画的,等等


请注意,当绘制部分透明的精灵时,建议的排序模式为BackToFront。

精灵仅在单个SpriteBatch开始/结束块内排序,它不可能对在不同开始/结束块中绘制的精灵进行排序


如果要实现分层效果,则需要确保所有绘制都在单个开始/结束块内进行,或者切换到延迟绘制,并对绘制对象的顺序进行更精细的控制(画家算法)

精灵仅在单个SpriteBatch开始/结束块内排序,它不可能对在不同开始/结束块中绘制的精灵进行排序

如果要实现分层效果,则需要确保所有绘制都在单个开始/结束块中进行,或者切换到延迟绘制,并对绘制顺序进行更精细的控制(画家算法)