python编程可以用来做游戏开发,python游戏一般是在什么基础上开发的
“人生苦短,我用Python”。这个笑话真实地反映了Python的地位。那么,有什么快速入门和进阶Python编程的好方法呢?我推荐游戏开发。
游戏开发激发学习热情。作为一名有着十几年编程教学经验的老师,我清楚地记得,当我告诉我的学生,课程任务里有俄罗斯方块游戏开发的时候,有同学在课堂上急切地喊着“是”,有同学鼓起掌来,大家一脸跃跃欲试的样子。
那是我在2014级软件工程教学改革试点班的尝试。课程名为“大学计算机基础B”,为期16周,64小时。前11周教授计算机基础和Python编程,后5周学生学习C/C(因后续课程需要)。未来五周的大任务是开发基于Win32 API的俄罗斯方块游戏程序。我有些担心学生们能不能做到,但在接受的那天,我有些惊讶。大部分学生的作业明显超过了作业要求的标准。
虽然有很多因素(比如强大的助教)促成了这么好的成绩,但我意识到一个重要的原因是“激发学生的学习热情”。是的,游戏开发有这个作用。有同学告诉我,他把自己的作品发表给高中同学,让他们玩,结果赢得了好评。我注意到学生的嘴角有一丝骄傲。有的同学开夜车编程,要到凌晨两三点才想睡觉。所以,我百分百确定游戏开发是学习Python编程的好方法。
游戏开发门槛低。用Python开发游戏的门槛很低。例如,如果显示游戏窗口的代码(见图1)不包括空行和注释行,它只需要15行。如果你想自己验证的话,那么请阅读我公布的代码文件,然后统计一下有实际函数的代码行数。以前用VC开发图形界面程序的时候,有大量代码显示游戏窗口,跨越好几个文件,令人望而生畏。用Python,基于Pygame模块,15行代码就搞定了。
图1游戏窗口
无论是Python入门还是高级Python,学习者都有合适的游戏开发项目可以选择。这样,Python语言就成了教孩子学习编程的首选。教孩子学编程不可能是认真的。我们必须用好的招数来吸引他们,激励他们。游戏开发是常用伎俩。以《教孩子学编程(Python语言版)》这本书为例。书的开头先教孩子画彩色的螺旋线,然后教孩子写小游戏,再教孩子写有动画和鼠标控制的游戏。我建议初学者可以自费学习这本书。如果你想写挑战更多的游戏,那么我建议你学习《Python游戏编程快速上手》或者《Python游戏编程入门》这本书。
想要更高的挑战?建议你跟我学“用Python开发俄罗斯方块”试试。你可以参观我在GitChat的才艺班。本教程面向已经具备Python编程基础,希望进一步提高Python编程能力的开发者。教程的设计采用“小步快走”的策略,共22篇。每篇文章都是实现一个功能的完整实验步骤。在每篇文章中,首先指出实验步骤的目标,也就是指出整个步骤完成后程序运行的样子。然后,描述了实验步骤的实现思路和任务。然后,逐任务讲解具体的练习任务,即指出哪里修改/补充了什么代码,重写的代码是什么样的,为什么要这么做。最后给出实验步骤完成后源代码版本的Github链接,供浏览或下载。最后,我们将实现家人、朋友或同学实际上可以玩的俄罗斯方块游戏。图2是运行界面的截图。我上传的视频展示了程序的运行效果。
图2俄罗斯方块游戏界面
有没有开源的游戏程序?是的,知乎的一篇文章推荐了很多开源项目。推荐的BombSquad是一款3D炸弹人游戏,界面(见图3)相当酷炫。
图3 3D炸弹人游戏界面
你能从游戏开发中学到什么?开发人员可以访问成千上万行代码。初级开发人员写的程序通常只有几十行代码。需要指出的是,写几十行代码的程序和写几千行代码的程序根本不是一个量级。至少,数千行代码的现实会促使开发者养成使用函数的习惯。我上编程基础课的时候,学生不愿意用函数,因为写出来的程序只有几十行代码。再怎么讲道理也没用。游戏开发需要开发者采用良好的结构来组织代码。程序代码量上去了,会促使开发者使用多个模块文件,甚至使用类和对象编程。从游戏开发开始,开发者将学习图形界面开发(GUI),了解事件驱动的编程模型。这将帮助开发者消除软件的神秘感,帮助他们探索更多。游戏开发会提高开发者的学习能力。比如游戏开发会用到python标准库和各种第三方库。这将促使开发人员查询每个功能的用法,并借助网络和手册学习相关概念和知识。一点一点的,开发者的知识多了,学习能力也更强了。游戏开发实践中的注意事项不要囫囵吞枣。不要这样做:根据书或教程键入(甚至复制)代码,运行一次程序,就大功告成了。你得自己想清楚。无论是整个想法还是单行代码中的细节,你都必须彻底理解它。如何彻底计算程序?不需要书籍或者教程的帮助也可以重新正确的编写程序(可以借助手册来查阅函数的用法)。采取“小步快跑”的策略。下一步是只实现一个小功能。实施后,检查运行效果。然后完成下一个功能。多功能,多功能,多功能。将程序代码分解成多个模块文件。使用类和对象来组织代码。求助。当我遇到问题时,我做的第一件事就是澄清问题是什么。然后,我会在网页引擎的搜索框中输入描述问题的关键词,希望能得到解决的线索。这对我帮助很大。最后,我偶尔会在论坛上提问。CSDN论坛是个不错的选择。
最重要的是,动手干!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。