Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
Python Pyglet snake游戏-优化或不同的解决方案_Python_Pygame_Pyglet - Fatal编程技术网

Python Pyglet snake游戏-优化或不同的解决方案

Python Pyglet snake游戏-优化或不同的解决方案,python,pygame,pyglet,Python,Pygame,Pyglet,我最近开始在Pyglet编程。我创造了一些游戏,包括蛇。我设法制作了一个简单的版本。现在我想开发一个更高级的Snake版本,包括菜单、皮肤、难度选项、图形、流畅的移动,在未来可能是多人游戏,等等 我的想法是将几个圆圈叠在一起,这样就可以创建一条类似slither.io的蛇 一切都很顺利,直到我试着把蛇的身体从纯色改成更复杂的颜色。事实证明,pyglet.graphics.Batch()没有绘制精灵的顺序,您必须按顺序组强制排序。但这对我来说效率很低 我的问题是,有没有一种方法可以让我的圈子变得更

我最近开始在Pyglet编程。我创造了一些游戏,包括蛇。我设法制作了一个简单的版本。现在我想开发一个更高级的Snake版本,包括菜单、皮肤、难度选项、图形、流畅的移动,在未来可能是多人游戏,等等

我的想法是将几个圆圈叠在一起,这样就可以创建一条类似slither.io的蛇

一切都很顺利,直到我试着把蛇的身体从纯色改成更复杂的颜色。事实证明,pyglet.graphics.Batch()没有绘制精灵的顺序,您必须按顺序组强制排序。但这对我来说效率很低

我的问题是,有没有一种方法可以让我的圈子变得更聪明一点?我试着浏览一张精灵的列表,并按照我需要的顺序绘制它们。尽管它有效,但性能比OrderGroups更困难

还有一个更好的问题,我怎样才能摆脱重复的圆圈呢?我知道画这么多.png文件效率很低,但我不知道还有什么其他方法可以达到类似的效果

我愿意重写整个代码,以使其更加高效和稳定。但我希望新代码能够以某种方式处理皮肤和我提到的其他东西

我知道你可以用OpenGL在屏幕上创建一条移动的蛇。但我看了看,它似乎有点太先进了。但是如果没有别的办法,我现在愿意学习

非常感谢您的任何见解,以下是我的代码和所有图形:


编辑:你可以想象一下,我基本上想要达到的是谷歌Snake的流畅性和slither.io的风格,我不会太担心。我认为使用OrderedGroups可能是最好的选择。绘制图像不应该那么低效。如果出现问题,您可以尝试将蛇的笔直部分变成矩形,但这可能会有点尴尬。如果不为我的github做太多商业广告,也许其中一些可能会有所帮助:-它是Pyglet+Python中slither io的复制品,没有菜单中的tho。@LeopardShark和我的测试,没有订单组,即使在60+级,我也能以1500 FPS的速度运行蛇。但对于OrderGroups,我已经在40级上降到了60个PFS。主要的问题是我和订单组一起去了月球。如果您查看我的代码(第117行),我总是创建一个新的OrderGroup。在一分钟内,我就有超过10000个订单组。因此,如果我继续使用OrderGroups,我必须改进使用它们的方式。如果您有任何想法,再次表示高度赞赏。Thanks@Torxed如果问题本身未包含代码,则代码审阅无法接受此项。链接可以腐烂。请看他们的和。我不会太担心它。我认为使用OrderedGroups可能是最好的选择。绘制图像不应该那么低效。如果出现问题,您可以尝试将蛇的笔直部分变成矩形,但这可能会有点尴尬。如果不为我的github做太多商业广告,也许其中一些可能会有所帮助:-它是Pyglet+Python中slither io的复制品,没有菜单中的tho。@LeopardShark和我的测试,没有订单组,即使在60+级,我也能以1500 FPS的速度运行蛇。但对于OrderGroups,我已经在40级上降到了60个PFS。主要的问题是我和订单组一起去了月球。如果您查看我的代码(第117行),我总是创建一个新的OrderGroup。在一分钟内,我就有超过10000个订单组。因此,如果我继续使用OrderGroups,我必须改进使用它们的方式。如果您有任何想法,再次表示高度赞赏。Thanks@Torxed如果问题本身未包含代码,则代码审阅无法接受此项。链接可能会腐烂。请查看他们的和。