nodebox for opengl是一个免费的跨平台库,用于用python编程代码生成2d动画。

nodebox-opengl的Python项目详细描述


用于opengl的nodebox

nodebox for opengl是一个python模块,用于使用opengl创建2d交互式视觉效果。它基于mac os x的经典nodebox(http://nodebox.net)的命令集。它支持贝塞尔路径、文本、图像过滤器(模糊、布鲁姆等)、屏幕外渲染、动画和运动特技以及简单的二维物理。它的目的是实现一个小型游戏引擎“城市在瓶子里”(http://cityinabottle.org)。

版本

1.7

许可证

有关详细信息,请参阅license.txt。

要求

用于opengl的nodebox是基于优秀的pyglet模块构建的。如果安装了python和pyglet,它可以在所有平台上工作。注意:在MacOS10.5上,已经安装了Python。在Mac OS X 10.6+(Snow Leopard)上,您需要安装32位版本的Python(Pyglet在预装的64位版本中无法正常工作)。

您的视频硬件需要OpenGL 2.0的支持。 如果不是这样,请尝试更新到新的驱动程序。

安装

为了能够在脚本中导入nodebox,python需要知道模块的位置。 要做到这一点,有三种基本方法:

  • 将nodebox/文件夹放在与脚本相同的文件夹中。
  • 将nodebox/文件夹放在模块的标准位置,以便所有脚本都可以使用它。 标准位置取决于您的操作系统,例如: /library/python/2.5/site-packages/在Mac上, /unix上的usr/lib/python2.5/site-packages/, C:Windows上的python25libsite包。
  • 在脚本中,将nodebox的位置添加到sys.path,然后导入它: >>>gt;模块='/users/tom/python/nodebox' >>>>导入系统;如果模块不在sys.path中:sys.path.append(模块) >>>>导入节点盒

如果出现“import pyglet”错误,请确保pyglet也安装在站点包中。

二进制文件: nodebox包含c扩展以实现更快的数学运算。 这些是针对Mac的预编译,在其他系统上,您需要在nodebox/ext/manually中执行“python setup.py”。 psyco(http://psyco.sourceforge.net/)也可以提高性能(如果使用32位python)。 nodebox/ext/中包含为mac预先编译的版本。

用法

  • 对于来自nodeboxformacosx或nodebox 2的用户:这个nodebox for opengl没有内置的代码编辑器。您可以使用与python捆绑在一起的空闲编辑器。在mac os x上,我们更喜欢textmate(http://macromates.com)。
  • 在命令行中,可以使用以下命令运行脚本:python example.py(或textmate中的command-r)
  • 这将打开一个包含脚本输出的应用程序窗口。

下面是一个简单的nodebox脚本:

>>> from nodebox.graphics import *
>>> def draw(canvas):
>>>     canvas.clear()
>>>     translate(250, 250)
>>>     rotate(canvas.frame)
>>>     rect(x=-50, y=-50, width=100, height=100)
>>> canvas.size = 500, 500
>>> canvas.run(draw)

它使用标准的绘图命令集导入nodebox.graphics模块。它定义一个draw()函数并将其附加到画布上,以便在每个动画帧中绘制它。它使用canvas.run()打开主应用程序窗口。

致谢

作者: -汤姆德斯密特(tom@organisms.be) -弗雷德里克·德布勒瑟(frederik@burocrazy.com

撰稿人: -列文·门沙尔 -乔治·奥利弗罗

瓶子里的城市: -尼古拉斯·马林纳斯 -勒查特 -蒂姆兽医 -弗雷德里克·德布勒 -汤姆德斯密特

版权所有(c)2008城市瓶装

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
气泡与选择排序的java效率   java Robolectric::LayoutInflator。充气()挂起在OnCreateOptions菜单中   网站使用facebooklogin插件,并将用户对数据库JAVA或Javascript的提示存储到我表单的文本框中   Tomcat服务器上的java错误:无法解析占位符“jdbc”。字符串值“${jdbc.driverClassName}”中的driverClassName”   java如何在JFrame web浏览器视图中显示以显示网页?   pkcs#11软件HSM2 java不工作   java请求HTTPS URL   使用Scanner的Java编译错误   JTextArea中的java命令行指示符   java以编程方式获取属性,并使用SPEL对其求值   四舍五入Java:BigDecimal对百万数字进行四舍五入   安卓关于使用Cydia JAVA API挂接APK时出错的问题   java在BQ中使用外部数据源,并从Google存储中生成特定数据   java如何获取cglib代理类实例的字节码?   安卓中的java如何处理可运行处理程序类