在使用screenManager.Draw(canvas)时会出现花屏,原因在于:执行Draw时执行到
canvas.DrawTexturedRect(canvas.Region, _primaryTarget, _primaryTarget.Region, ColorU.Blank);
这个过程时绘画花屏的,不执行这个过程是不会产生花屏,之所以花屏并不是说该过程有问题,而是在执行screenManager.Draw(canvas)时的某些参数没有配置正确引起的,经过多方面尝试,如设置BackgroundSprite或者把背景颜色设置为BackgroundColor="#F000"(在配置文件:“design.layout.xml”中的Scene配置改成<Scene BackgroundColor="#F000">)就能解决花屏的问题。
在解决这个问题的过程中,我还发现,官方的例子Pacman中,把PacmanGame.cs中Screen.Update(time.FrameTime);这个过程注释掉,也会引起花屏。其实screenManager.Draw(canvas)引起花屏主要还是因为DrawTexturedRect时引起的,本人水平有限,暂时不太清楚该过程为何会引起花屏,为了不改变其源码的情况下,只能逐个原因进行分析,多测试,多注释,多折腾一下,或多或少能找到解决的方法的。
原创作品出自努力偷懒,转载请说明文章出处:http://www.cnblogs.com/kfarvid/