Python中的二维动画
我正在用Python写一个模拟器,想了解一下关于基本2D动画的选项和看法。这里的动画是指实时渲染,而不是显示预先制作好的图片。
我现在使用的是matplotlib(Wxagg后端),可能会继续用它,但我觉得它在性能和功能上可能无法满足我的需求。
我的要求是:
- 跨平台(支持Linux、MacOS X和Windows)
- 复杂度低,容易上手
- 能和wxpython很好地配合使用(至少不会互相干扰)
- 需要互动性。能够检测到对象被点击、鼠标经过等情况。
需要注意的是,虽然高性能不是必须的,但能够处理大约100个位图对象在屏幕上显示是比较理想的。
你有什么想法吗?
3 个回答
2
Arcade 可以在任何支持 OpenGL 3.3 及以上版本的平台上运行(比如说,树莓派就不行,但大多数其他平台都可以)。虽然它主要是为了制作简单的游戏,但 Arcade 提供了很棒的位图和精灵处理功能,还有一些简单的图形元素,比如矩形、弧形和圆形。
3
你可以试试pygame,它非常容易上手,而且和C++里的SDL很像。
14
我很喜欢pyglet这个库,它是一个完全独立的图形处理库,可以在win32、linux和OS X上使用。
这个库的开销非常小,你可以通过网站上的教程自己看看。它应该可以和wxpython很好地配合使用,或者至少我记得在邮件列表上看到过关于wxpython和pyglet一起使用的讨论。
不过,它并不支持通过鼠标点击来选择对象——这个你需要自己来处理。一般来说,对于一个2D应用来说,这并不是太难。
mactorii是我用纯python和pyglet写的一个OS X应用,里面有一些基本的动画(滚动)和点击检测。它没有使用wxpython,但也许能让你了解一下涉及的内容。不过要注意,mactorii使用的是旧版的pyglet API,所以里面的运行循环已经过时了。我会找时间更新它的…… :P