scratch和Python创意编程指南

创意编程,做为一个整体的概念被提出,也是近几年的事情。全国中小学比赛中就有创意编程类目。创意编程什么最重要?创意最重要,并不是算法最重要。创意基于什么?想像力,广博的知识,清晰的逻辑与精巧的设计还不够呢。还要有美工,更要有配音,配音运用得好一个作品才会活起来。许多人看恐怖电影,觉得毛骨悚然那都是配音效果。至于用什么计算机语言实现,那倒是其次,小学生推荐用scratch,初中以上可以用python来实现。

用scratch做创意编程,这里推荐一个基本的套路。在主题想好后,首先要找一些能配合主题思想的,较精美的gif动画,这是用来做序幕的。只要把它们导入scratch中,简单的拖几个积木块,精美的序幕就来了。这是角色一,名字叫序幕。角色二是什么呢?可以是一个用photoshop设计好的封面,封面上还可以写上操作说明等等。给角色二编程,让它被单击或按了空格键后游戏就正式开始了。第三、第四等角色就是游戏中的主角与反面等角色了。游戏完了后,最后一个显示的画面当然也可以是用photoshop设计的一个图片。

现在用python做创意编程的人还是相当少。大家都用python去挖数据或什么机器学习之类的去了,所以没几个人去关注这个细分领域。本人现在也是接到有些大学生要做毕业设计,找到我,让我帮忙用Python设计一个游戏之类的活。不过随着Python在中小学的普及度逐步增加,以后会有越来越多的人要求订制作Python创意编程作品的。用Python做创意游戏可以用海龟模块,虽说它是用来画图的。但也是可以用来做一些小游戏的。因为它基于tkinter,有画布,有事件检测功能,所以可以做动画与游戏。其次可以用pygame模块做游戏。pygame就显得更加专业了,能控制fps,而用turtle模块做是无法控制fps,因为它没有这个机制(或许我还没查到相关资料如何控制画布渲染的FPS吧)。除了用pygame还有一些,诸如arcade模块,它更倾向于是一个框架,而不是像pygame更倾向于库。本人没有看到其它人用这个模块做游戏。我用这个模块倒是做了些小游戏与动画之类的。arcade的官网例子里就有本人的作品。我和arcade模块的作者一段时间还经常互通电子邮件。除了arcade模块,要用到物理引擎的话那目前pymunk是最好的选择。虽然国内pymunk用的人少,但其它的pybox和pyglet之类的用的人好像更少。更重要的是pymunk官网资料丰富,例子多。所以用pymunk是不二的选择。用python做创意游戏制作,推荐用面向对象编程的方法。创意编程,其它诸如美工配音都是一致的。现在scratch创意编程例子这么多,我要做的事情就非常多了。单就一个把scratch创意作品转换成python创意作品就是一个要花时间的事件。自己的作品积累了这么多了,就算审核一次都要好久好久。这是什么呢?因为在审核的过程中可能会觉得过去的设计不太好,会不自觉的修改,所以就又入了坑了。如果把它做成PPT幻灯片用来教学,那花的时间就更长了。

以后也可能会有人用javascript之类的来做。因为它能操控HTML5的画布, 这相当于做页游了。javascript本人还是20年前学过,现在没有怎么使用,就不能多说了。用了python这么久,感觉有花括号的计算机语言都更难,前段时期花些时间看了react,则觉得这个框架更难,算了不去研究什么react了,还是把pymunk研究研究才是正道。创意编程,尤其是用scratch来做,技术性并不是主要的。正所谓汝果欲学诗,功夫在诗外。