咱们有三个理由来注明 Pygame 对初学编程者是最好的选择。
-- Craig Oda
原文导航
1、 小段代码块
09%
2、 全局变质更明晰
23%
3、 Pygame 无依赖要求
52%
Phaser 和 JavaScript 的劣势
66%
最后话题: Python 对垒 JavaScript
80%
对于做者
90%
编译自 https://opensource.com/article/17/11/pygame
做者 Craig Oda
译者 runningwater
咱们有三个理由来注明 Pygame 对初学编程者是最好的选择。
上个月,Scott Nesbitt
[1]
颁发了一篇题目为Mozilla 支入 50 万美圆来撑持开源名目
[2]
的文章。此中一个基于 HTML/JavaScript 的游戏平台名目 Phaser 与得了 50,000 美圆的奖励。整整一年里,我都正在运用 Phaser 平台来教我的小女儿,用来进修的话,它是最简略也是最好的 HTML 游戏开发平台。然而,应付初学者来说,运用Pygame
[3]
兴许成效更好。起果如下:
1、 小段代码块
Pygame,基于计较机课程中最风止的语言
[4]
Python。Python 很是符适用一小段代码来真现咱们的想法,孩子们可以从单个文件和单个代码块起初步进修,正在把握函数(function)或类(class)对象之前,就可以写出意大利面条似的代码。 很像手指画,所想即所得。
以那样的方式来进修,当编写的代码越来越难于打点的时候,孩子们很作做的就会把代码折成成函数模块和类模块。正在进修函数之前就进修了 Python 语言的语法,学生将把握根柢的编程知识,对理解全局做用域和部分做用域起到更好的做用。
大大都 HTML 游戏正在一定程度上会将构造、花式和编程逻辑分为 HTML、CSS 和 JavaScript,并且须要 CSS 和 HTML 的知识。从长远来看,尽管装分更好,但对初学者来说是个阻碍。一旦孩子们发现他们可以用 HTML 和 CSS 快捷构建网页,很有可能就会被颜色、字体和图形的视觉刺激结合留心力。纵然仅仅只专注于 JavaScript 代码,也须要进修根柢的文档构造模型(DOM),以使 JavaScript 代码能够嵌入进去。
2、 全局变质更明晰
Python 和 JavaScript 都运用动态类型变质,那意味着变质只要正在赋值威力确定其类型是一个字符串、一个整数还是一个浮点数,然而正在 JavaScript 更容易蜕化。类似于类型变质,JavaScript 和 Python 都有全局变质和部分变质之分。Python 中,假如正在函数块内要运用全局变质,就会以 要害字区分出来。
要了解正在 Phaser 上教授编程初学者所面临的挑战的话,让咱们以根柢的制做您的第一个 Phaser 游戏教程
[5]
为例子,它是由 Alvin Ourrad 和 Richard Davey 开发制做的。正在 JavaScript 中,步调中任那边所都可以会见的全局变质很难逃踪调试,屡屡惹起 Bug 且很难处置惩罚惩罚。果为 Richard 和 Alvin 是专业步调员,所以正在那儿特意运用全局变质以使步调简约。
正在他们的 Phaser 编程手册《Interphase》
[6]
中,Richard Davey 和 Ilija Melentijevic 评释说:正在不少 Phaser 名目中但凡都会运用全局变质,起果是运用它们完成任务更容易、更倏地。
“假如您开发过游戏,只有代码质到一定范围,这么(运用全局变质)那种作法会使您陷入困境的,可是咱们为什么还要那样作?起果很简略,仅仅只是要使咱们的 Phaser 名目容易完成,更简略罢了。”
针对一个 Phaser 使用步调,尽管可以运用部分变质和装分代码块来抵达关注点断绝那些技能花腔来重构代码,但要使第一次进修编程的小孩能了解,显然很有难度的。
假如您想教你的孩子进修 JavaScript,大概假如他们曾经晓得怎么运用像 Python 来编程的话,有个好的 Phaser 课程引荐:完好的手机游戏开发课程
[7]
,是由Pablo Farias Navarro
[8]
开发制做的。尽管题目看着是挪动游戏,但真际是对于 JavaScript 和 Phaser 的。JavaScript 和 Phaser 挪动使用开发曾经转移到PhoneGap
[9]
话题去了。
3、 Pygame 无依赖要求
由于Python Wheels
[10]
的显现,Pygame 超级容易拆置
[11]
。正在 Fedora/Red Hat 系统下也可运用 包打点器来拆置:
更多信息请参考官网Pygame 拆置注明文档
[12]
。
相比来说,尽管 Phaser 自身更容易拆置,但须要把握更多的知识。前面提到的,学生须要正在 HTML 文档中组拆他们的 JavaScript 代码,同时还须要些 CSS。除了那三种语言(HTML、CSS、JavaScript),还须要运用火狐或谷歌开发工具和编辑器。JavaScript 最罕用的编辑器有 Sublime、Atom、VS Code(按运用几多多排序)等。
由于阅读器同源战略
[13]
的起果,假如您间接正在阅读器中打开 HTML 文件的话,Phaser 使用是不会运止的。您必须运止 Web 效逸,并通过效逸会见那些文件。还好,应付大大都工程名目,可以不用正在原地运止 Apache 效逸,只须要运止一些轻质级的效逸就可以,比如httpster。
Phaser 和 JavaScript 的劣势
JavaScript 和 Phaser 有着种种的不好,为什么我还继续教授他们?诚心说,我思考了很长一段光阳,我正在担忧着学生进修变质申明提升variable hoisting和变质做用域的揪心。我开发出基于 Pygame 和 Python 的课程,随后也开发出一涛基于 Phaser 的。最末,我决议运用 Pablo 预先制订的课程做为末点。
我转用 JavaScript 有两个起果。首先,JavaScript 曾经成为正式使用的正式语言。除了 Web 使用外,也可运用于挪动和效逸使用方面。JavaScript 无处不正在,其宽泛使用于孩子们每天都能看到的使用中。假如他们的冤家运用 Javascript 来编程,他们很可能也会受影响而运用之。正如我看到了 JavaScript 暗地里的动力,所以深刻钻研了可编译成 JavaScript 的代替语言,次要是 Dart 和 TypeScript 两种。尽管我不介意格外的转换轨范,但还是最喜爱 JavaScript。
最后,我选择运用 Phaser 和 JavaScript 的组折,是果为我认识到上面这些问题正在 JavaScript 可以被处置惩罚惩罚,仅仅只是一些工做质罢了。高量质的调试工具和一些大牛们的工做使得 JavaScript 成为教育孩子编码的可用和有用的语言。
最后话题: Python 对垒 JavaScript
当家长问我运用的什么语言做为孩子的入门语言时,我会立刻引荐 Python 和 Pygame。果为有成千上万的课程可选,而且大大都都是免费的。我为我的儿子选择了 Al Sweigart 的运用 Python 和 Pygame 开发游戏
[15]
课程,同时也正在运用 Allen B. Downey 的Python 编程思想:如何像计较机科学家一样考虑
[16]
。正在 Android 手机上可以运用Tom Rothame的PAPT Pyame
[18]
来拆置 Pygame 游戏。
只管有我的倡议, 我总是疑心孩子们很快就会搬到 JavaScript。那无妨 —— JavaScript 是一门成熟的编程语言,有不少不少帮助工具。但有多年的协助大儿子运用 Python 创立炫酷游戏教训的我,仍然钟情于 Python 和 Pygame。
对于做者
Craig Oda —— 东京 Linux 用户组的首位总裁和怪异创始人,奥莱理日原出版的《Linux 日文环境》的怪异做者。正在亚洲建设了第一个 ISP 的焦点团队成员之一。一个大型 Linux 公司的产品打点及市场的前任副总裁。硅谷开发者干系咨询公司 Oppkey 的竞争方。更多
[19]
via:https://opensource.com/article/17/11/pygame