Python和pygame是学习SDL的好方法吗?
如果我将来想转到C++和SDL,那么学习Python和pygame是否是个好方法呢?
9 个回答
6
你可以在基于SDL的环境中学习一些技巧,比如怎么实现游戏逻辑等等。但是一旦你转到C++/SDL,你就得直接使用SDL的函数,pyGame里的那些辅助函数和对象就完全没用了。
6
pygame在很大程度上简化了SDL的接口,所以我觉得从SDL转到pygame并没有太大的好处。
15
用Python和PyGame来学习SDL真的是个不错的主意。
我用这种方式写了一个还算受欢迎的游戏。相比其他语言的SDL绑定,Python/PyGame看起来更先进。而且和C++相比,一个很大的优势是你不需要编译代码。通过一些简单的修改,你甚至可以在程序运行时进行调整,并实时看到效果。这种体验差别很大,就像用图形界面软件做矢量图形和在文本编辑器里写SVG代码的区别。不过,这种便利并不是开箱即用的,因为你需要稍微调整一下你的程序才能看到效果。
至于PyGame的其他优点,我的jrpg在Linux、Windows和OSX上只做了很小的改动就能运行。我需要对全屏模式切换和双缓冲做一些调整,因为不同操作系统之间有些差异,但从来不需要重新编译。如果你遇到问题,可以得到很好的错误追踪信息,并实时调试,这在C++中一旦出现内存损坏或段错误就不太可能做到。
我不太清楚把C++和Python混合在一起做SDL游戏到底有多简单或多难。我觉得应该不会太难,因为PyGame是一个相对简单但做得很好的SDL封装,而Python和C++的混合应该也足够简单。