2024-06-07 07:14:32 发布
网友
在编写图形程序时,哪种解决方案最成熟、最受支持?在
红宝石和加工?Python和食人魔?哪些事情对你很有效?在
如果您只是对实验感兴趣,我建议您为您已经熟悉的动态语言选择一个带有绑定的3D框架。在
一、三年前,我开始用Ruby/OpenGL做实验,这很容易操作。在
如果你真的想建立一个项目(无论出于什么原因),我建议你选择一个基于
如果你想让你的项目在不同的操作系统上很容易地运行,你可能需要选择一个用Java编写的框架(因为jRuby到处都有jRuby)或JavaScript绑定(因为这些语言在那里得到了很好的支持)。但是,这会限制您可用的框架。(这是我对OSS+linux的偏见)。在
维基百科有一个list of game engines。基于几个标准,我用jMonkeyEngine(v2)启动了一个项目,发现使用Rhino(jvmjavascript实现)进行操作和控制很容易。在
我最近看到了另一个基于Java的框架的演示文稿,其中包含了几种语言的绑定,看上去非常酷(受食人魔引擎的启发),但是我忘记了它的名称,在列表中找不到它。在
在做C的时候,我确实考虑过针对dotNet和Mono的跨平台运行的项目/框架,但是要获得(Tao?)的开发版本太麻烦了框架和MonoLua绑定正在运行。也许事情变了。在
总而言之,选择一个框架,该框架可以在您想要的环境中运行,并为您想要使用的动态语言绑定。即使可用于您想要使用的动态语言的框架库代码相当少,但如果您可以使用底层语言,则可以轻松地对其进行扩展。如果你精通C++,java和C就不应该太过简单。在
如果你熟悉C++,你可以试试Lua。LUA是一种可以嵌入任何C/C++程序中的动态语言。它在游戏行业很受欢迎。在
我想把Python用PyOpenGL作为一个选项来考虑。在
如果您已经熟悉OpenGL,那么PyOpenGL基本上是一个用Python编写的API包装器。起初,我很惊讶代码在Python和C++中看起来是多么相似。像这样(注意,我还使用了Pyglet):
def setup_render(self): '''First rendering setup''' glClearColor(0.0, 0.0, 0.0, 1.0) glClearDepth(1.0) glEnable(GL_LIGHTING) glEnable(GL_DEPTH_TEST) glEnable(GL_ALPHA_TEST) glEnable(GL_CULL_FACE) def draw(self, time_passed): '''Drawing events''' if self.has_exit: pyglet.app.exit() return glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glUseProgram(self.shader.program) self.set_lights() # Draw objects here glTranslate(0, 0, -10) glScale(5.0, 5.0, 5.0) glutSolidSphere(1, 16, 16)
我能够在Python中快速使用PyOpenGL,并实现了一个不超过200行的四元数类。如果您对Python很熟悉,我会毫不犹豫地推荐您去看看。在
顺便说一句,PyOpenGL's API documentation也比official one更具可读性。在
如果您只是对实验感兴趣,我建议您为您已经熟悉的动态语言选择一个带有绑定的3D框架。在
一、三年前,我开始用Ruby/OpenGL做实验,这很容易操作。在
如果你真的想建立一个项目(无论出于什么原因),我建议你选择一个基于
如果你想让你的项目在不同的操作系统上很容易地运行,你可能需要选择一个用Java编写的框架(因为jRuby到处都有jRuby)或JavaScript绑定(因为这些语言在那里得到了很好的支持)。但是,这会限制您可用的框架。(这是我对OSS+linux的偏见)。在
维基百科有一个list of game engines。基于几个标准,我用jMonkeyEngine(v2)启动了一个项目,发现使用Rhino(jvmjavascript实现)进行操作和控制很容易。在
我最近看到了另一个基于Java的框架的演示文稿,其中包含了几种语言的绑定,看上去非常酷(受食人魔引擎的启发),但是我忘记了它的名称,在列表中找不到它。在
在做C的时候,我确实考虑过针对dotNet和Mono的跨平台运行的项目/框架,但是要获得(Tao?)的开发版本太麻烦了框架和MonoLua绑定正在运行。也许事情变了。在
总而言之,选择一个框架,该框架可以在您想要的环境中运行,并为您想要使用的动态语言绑定。即使可用于您想要使用的动态语言的框架库代码相当少,但如果您可以使用底层语言,则可以轻松地对其进行扩展。如果你精通C++,java和C就不应该太过简单。在
如果你熟悉C++,你可以试试Lua。LUA是一种可以嵌入任何C/C++程序中的动态语言。它在游戏行业很受欢迎。在
我想把Python用PyOpenGL作为一个选项来考虑。在
如果您已经熟悉OpenGL,那么PyOpenGL基本上是一个用Python编写的API包装器。起初,我很惊讶代码在Python和C++中看起来是多么相似。像这样(注意,我还使用了Pyglet):
<>看看它与C++代码有多么相似。在我能够在Python中快速使用PyOpenGL,并实现了一个不超过200行的四元数类。如果您对Python很熟悉,我会毫不犹豫地推荐您去看看。在
顺便说一句,PyOpenGL's API documentation也比official one更具可读性。在
相关问题 更多 >
编程相关推荐