首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >学完 Python ,我需要编个游戏露两手

学完 Python ,我需要编个游戏露两手

作者头像
CSDN技术头条
发布2018-07-30 11:43:55
2K1
发布2018-07-30 11:43:55
举报
文章被收录于专栏:CSDN技术头条CSDN技术头条

“人生苦短,我用 Python”。

这句戏言真实反映了 Python 语言的江湖地位。

那么,要快速上手和进阶 Python 编程,有什么好途径呢?

我推荐游戏开发。

游戏开发激发学习热情

作为一名拥有十余年程序设计教学经验的老师,我清楚地记得,当告诉学生们课程任务有俄罗斯方块游戏开发的时候,部分同学在课堂上热切地喊出“好耶”,部分同学鼓起掌来,大家一副跃跃欲试的神情。

那是我在 2014 级软件工程专业教学改革试点班中做的尝试。开设的课程叫作“大学计算机基础B”,一共16周,64学时。

前面第11周讲授计算机基础和 Python 编程,后面5周学生学习C/C++(因后续课程需要)。

后5周的大作业就是基于 Win32 API 开发俄罗斯方块游戏程序。我多少有些担心学生是否做得下来,然而到验收的那一天,我有些吃惊。大部分同学的作品都明显超出了作业要求的标准。

尽管有很多因素(比如强有力的教辅)促成了这样的好结果,但我认识到一个重要的原因是“激发了学生们的学习热情”。

是的,游戏开发有这个效果。有学生告诉我,他把自己的作品发布到高中同学群,让同学们玩玩,结果赢得赞誉一片。

我察觉到了学生嘴角露出了小小的得意。有学生开夜车编程序,搞到凌晨两三点都不想去睡觉。所以呢,我百分百肯定,游戏开发是学习 Python 编程的好途径。

游戏开发门槛低

用 Python 开发游戏的门槛是很低的。例如,实现显示游戏窗口的代码只需要15行。表1给出的代码实现了显示游戏窗口功能,程序运行效果见图1。表1中一共有28行代码,除去空行和注释行后是15行。

我以前用 VC++ 开发图形界面程序的时候,实现显示游戏窗口的代码有一大堆,跨好几个文件,让人望而生畏。用 Python 的话,基于 Pygame 模块,15行代码就搞定了。

import sysimport pygamedef main():    #初始化pygame。启用Pygame必不可少的一步,在程序开始阶段执行。    pygame.init()    #创建屏幕对象    screen = pygame.display.set_mode((1200, 900) )  #分辨率是1200*900    pygame.display.set_caption("俄罗斯方块")  #窗口标题    #屏幕背景色    bg_color = (230, 230, 230)    #游戏主循环    while True:        #监视键盘和鼠标事件        for event in pygame.event.get():            if event.type == pygame.QUIT:                sys.exit()        #设定屏幕背景色        screen.fill(bg_color)        #让最近绘制的屏幕可见        pygame.display.flip()if __name__ == '__main__':    main()

无论是 Python 入门,还是Python进阶,学习者都有适合的游戏开发项目可供选择。正是这样,Python 语言成为教孩子学编程的优先选择。

教小孩学编程,可不能一本正经的,必须用好招吸引他们,激发他们。游戏开发就是常用的招术。

以《教孩子学编程(Python语言版)》一书为例,该书一开头就教孩子绘制彩色螺旋线,接着教孩子编写小游戏,然后教孩子编写具有动画、鼠标控制的游戏。

我建议初学者可以自降身份去学一学这本书。如果你想编写有更多挑战的游戏,那么建议你学习《Python 游戏编程快速上手》一书。

Python游戏编程快速上手 第4版

作者:[美]Al Sweigart(斯维加特)

当当 广告

购买

还想要更高一点的挑战?

建议你尝试“用 Python 开发俄罗斯方块”。

该教程面向的是已有 Python 编程基础的、想进一步提高 Python 编程能力的开发者。教程设计采用“小步走”策略,一共有22篇文章。

每一篇都是一个完整的实验步骤,实现一个功能。在每一篇文章中,首先指出实验步骤的目标,也就是指出完成整个步骤后,程序运行效果是什么样的。接着,描述实验步骤的实现思路和任务。

然后,逐个任务地讲解具体的做法,也即指出哪里要修改/补充什么代码,改写后的代码是什么样的,为什么要这样做。

最后,给出该实验步骤完成后的源代码版本的 Github 链接,供浏览或下载。到最后,我们将实现能供家人、朋友或同学实际玩一玩的俄罗斯方块游戏。图2是运行界面的截屏。我上传的视频

([http://www.iqiyi.com/w_19rze50865.html](http://www.iqiyi.com/w_19rze50865.html))呈现了该程序的运行效果。

有没有开源的游戏程序呢?

有的,知乎上的一篇文章推荐了不少开源项目(https://www.zhihu.com/question/25960850)。

其中推荐的 BombSquad 是一个 3D 炸弹人游戏,界面(见图3)还是挺酷炫的。

从游戏开发中能学到什么

  • 开发者有机会接触到千行代码量级的程序。初级开发者编写的程序一般只有几十行代码。要指出的是,编写几十行代码的程序和编写千行代码的程序,完全不是一个量级的事。 至少,千行代码这一现实将促使开发者养成使用函数的习惯。我上编程基础课的时候,由于编写的程序只有几十行代码,学生不愿意用函数,你再苦口婆心地讲道理也没用。
  • 游戏开发要求开发者采用良好的结构来组织代码。程序的代码量上去了,会促使开发者使用多个模块文件,甚至使用类与对象来编程。
  • 从游戏开发中,开发者将学习图形界面开发(GUI),理解事件驱动编程模型。这将会帮助开发者消除对软件的神秘感,有助于开发者开展更多的探索。
  • 游戏开发会提高开发者的学习能力。例如,游戏开发会用到python标准库以及各种第三方库。这将促使开发者借助网络和手册,查询各个函数的用法,学习相关的概念和知识。一点一点地,开发者拥有更多知识,更强的学习能力。

游戏开发实践注意事项

  • 切勿囫囵吞枣。不要这样做:照着书本或者教程敲(甚至复制)一遍代码,跑一遍程序就算完事了。 你必须自己搞懂。无论是整体思路,还是一行代码内的细节,你都要吃透。怎样算吃透了程序?不借助书本或教程(借助手册查阅函数的用法是可以的),能正确地再写一遍程序。
  • 采用“小步走”策略。下一步只实现一个小功能。实现完成后,检查运行效果。通过后再去完成下一个功能。
  • 多用函数,多用函数,多用函数。把程序代码分解到多个模块文件。使用类和对象来组织代码。
  • 寻求帮助。我遇到问题的时候,首先做的是厘清问题是什么。接着,我会在网络引擎的搜索框内输入描述问题的关键词,期望得到解决办法的线索。这帮了我的大忙。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GitChat精品课 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 游戏开发激发学习热情
  • 游戏开发门槛低
  • Python游戏编程快速上手 第4版
  • 从游戏开发中能学到什么
  • 游戏开发实践注意事项
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档