我正在为课程创建一个项目,而且我遇到了一些滞后问题。加载地图时,不会发生任何事情,因此您必须返回并重新加载它并且它会工作一段时间或者在进行一些移动之后我的手机/模拟器将花费几秒钟直到您可以进行下一步行动。这就是我设置课程的方式:
我将我的地图类作为主控制器。有不同的地图,但它们都是一样的。 map类通常使用空的相对布局从布局设置内容视图,并创建节点,行并具有游戏规则类以检查玩家执行的不同移动。节点,线和游戏规则的类扩展了View,因此在onDraw()中我使用定义的坐标绘制正方形,并将它们添加到地图类中的视图。根据播放器的作用,行和节点将调用postInvalidate()来更新数字或颜色。在游戏规则类的内部,它会不断地检查胜负,并显示轮到它但我在onDraw()内部有无效(),因此它不断被重绘。有6个以上的节点被绘制,10多个线条,游戏规则覆盖了所有内容。通过将视图添加到相对布局也可以显示这些内容。
我知道使用sleep()并不理想,但是自从游戏规则类创建并在onDraw()中使用invalidate之后我就一直在体验这一点。我在旅途中,但我可以稍后发布代码。我也在使用canvas进行这个项目,因为没有其他人在这个项目上工作过。
提前谢谢!
TL; DR:如何更好地优化使用画布?