![](/img/trans.png)
[英]Combining two webassembly components programmed in different high-level languages
[英]Any high-level languages that can use c libraries?
我知道这个问题可能是徒劳的,但这只是出于好奇,而且我仍然是一个新手^ ^无论如何我在学习它的过程中一直爱着python。 我的问题显然是速度问题。 我想进入独立游戏创作,并且在短期内,2d和pygame将会起作用。
但是我最终想分支到3d区域,而python实际上太慢了,无法制作任何3D和专业。 所以我想知道是否曾经有过创建能够导入和使用c库的高级语言的工作? 我看过Genie ,它似乎能够使用某些库,但我不确定到什么程度。 我可以将它用于openGL编程,还是用于ac游戏引擎?
我确实知道一些口齿不清并且喜欢它,但是没有很多图书馆可供它使用。 这导致了问题:我不能忍受C语法,但C有很多我可能需要的库! 和irrlicht这样的游戏引擎。 是否有任何语言可以用来代替C周围的C?
非常感谢你们
Python可以使用ctypes模块调用动态加载的C库中的函数(.so中的.so,Windows中的.dll)。
还有cython - python的一种变体,可以编译为C并可以直接调用C库。 您可以混合使用纯Python和cython编写的模块。
您可能还想查看专门为Python或python接口编写的众多3D游戏引擎 。 我听过最多(但没有使用过)的是Blender和Python-Ogre 。
Python能够通过ctypes模块使用C库。 您必须编写一些Python代码来导入C函数,但如果C API干净简单,您将毫无困难。
您可能会发现这些有用:
我很惊讶没有人清楚地说过C ++就是你要找的东西。 和你一样,我对C语法感到厌恶,但如果你想进入3D游戏,这是避免使用C ++的一个不好的理由。 你想潜入3D游戏,还是想坐在游泳池边哭泣,水太冷了?
我想你也会发现C ++在OpenGL中运行得非常好,对于许多已被建议的替代方案可能都不是这样。
在某种程度上, Cython可能正是您所寻找的。 它允许您将Python用作高级语言,但随后将C用于需要优化的部分。
但是,在一天结束时,如果你想做3D,那么学习C或C ++可能就好了。 :-)
主要的开源游戏引擎(Ogre,Irrlicht等)都有Python包装器。 特别是Panda3D应该有很好的绑定。
如果你想看看.Net平台。 您有以下解决方案:
使用C ++ / CLI将您的C / C ++代码编译为.Net程序集,此部分的运行时间与您的本机C / C ++代码相同。
使用任何.Net语言(C#,F#,IronPython)使用低级库开发高级内容。 对于纯数字运算,C#/ F#通常比原生C代码慢2-4倍,这仍然比Python快得多。 对于非数字运算任务,C#/ F#有时可以匹配本机代码的速度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.