我有一类pygame.draw.rect
像下面这样的:
pygame.draw.rect(windowSurface, BROWN, (x+25, y+35, 5, 5))
这些都在类中Archer()
,在函数中draw(x, y)
。但是,我想将所有这些对象作为一个对象移动。如何在不移动每个对象的情况下移动该类中的所有对象?我的代码在这里:http : //pastebin.com/APkgTnTk
将这些对象包括在RenderUpdates组中。这使您可以将屏幕上的项目作为一个绘制,并在它们上调用函数。例如,您可以执行以下操作:
window_surfaces = pygame.sprite.RenderUpdates()
然后将要调用的类的init函数包含在组中:
window_surfaces.add(self)
然后,当您要在所有函数上调用函数时,可以调用
window_surfaces.draw()
您可以考虑预先在“自我”中包含每个类的各个参数。
另外,如果您只想在当前位置绘制一组精灵,则可以调用:
pygame.display.update(window_surfaces.draw(screen))
但是请注意,此绘制函数不是您定义的,而是内置在渲染更新对象中的一个。如果使用渲染更新,则可能不想覆盖此功能。
同样,实际上,您似乎可能没有使用Sprite。如果是这种情况(并且您可能要认真考虑使用它们,它们具有许多必须从头开始构建的有用功能),而不是您希望将类自身附加到init函数中的列表中,然后使用for循环调用函数,如下所示:
for itemtodraw in mygroup:
itemtodraw.draw()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句