我可以在C中重写我昂贵的pygame函数吗?

tal*_*ees 4 c python pygame a-star path-finding

我可以在我的pygame游戏中找到昂贵的函数(例如,A*寻路)并将它们重写为此处概述的扩展吗?

这样做有速度好处吗?有更好的(python)解决方案吗?

我问这个问题是因为我刚开始学习C是出于无关的原因,当它发生在我身上时,当我回到Python和pygame时这可能是一个好主意.

NPE*_*NPE 8

这样做有速度好处吗?

如果不知道你正在做什么,这是不可能的,但一般的答案是"非常可能".

有更好的(python)解决方案吗?

再说一次,这是不可能的.比什么更好?

如果您正在使用数值数组,那么第一步应该是使用NumPy.

一旦你完成了这个,除了在原始C中编码扩展之外,还有多种方法可以加快速度:

  • Cython:用类似Python的语言编写扩展;
  • numexpr:数组表达式的快速评估引擎.

最后,如果您确实发现自己编写C或C++扩展,请考虑使用SWIGBoost.Python.

  • 从技术上讲,如果你使用Cython,你*是*写C扩展(不是直接在C中).SWIG主要用于包装现有的C库. (2认同)