游戏设计中的程序结构
2020-05-07
来源:尚佳旅游分享网
tougao4@chinaitedu.cn j信息技术课 I啊!我想剑r—f占息技术澡 内容设计集锦l 游戏设计中的程序结构 陈凯上海市位育中学 初学程序设计者很难真正体 会设计一个“有用”程序的完整过 程,因为他所遇见的大部分程序设 计任务,其实都是为了便于学习者 入门而被精心构造好的。例如,通 过判定一个数的奇偶性,来熟悉分 支结构;通过1+2+3+4+…・・+100 的累加,来熟悉循环结构。一般来 的通关过程,却都是真实的任务。 只要提供并限定好规定数量的游 描述很简单,游戏制作也不难,本 文使用“RPG Maker XP”来做演 示,这款软件自称“简单到孩子也 能使用”,网络上有试用版下载, 戏场景元素,那么就可以将设计游 戏流程的任务交给学习者,然后不 同的程序结构就会在游戏流程的 设计中逐一浮现出来。下面是一个 大家也可以尝试其他各种RPG游 戏制作工具,使用方法大同小异。 游戏设计可分为地图设计和事件 设计两个步骤。 1.地图设计 叫“金币王子”(也可以是其他名 字)的游戏案例,除了作为探险主 角的王子,其他游戏场景元素只有 这么几项:洞穴、恶魔、金币数、成 就值。几个预设的规则是:某洞穴 说,在讲解程序代码语法的时候, 程序结构就自然而然地呈现在眼 前了,或者说,为了讲程序结构, 不得不先引入代码或伪代码。对于 一为简单起见,地图可直接使用 程序默认的“草原”,然后在草地 上添加两个洞穴(如图1)。软件中 有大量的图标和地图背景可供选 用,也可自己绘制图标和背景。 2.事件设计 A洞穴添加的事件为两行,分 中有恶魔,打败恶魔就可增加成就 值,某洞穴有金币,可按当前成就 值提取等量数值的金币。为了使流 程更加简洁,假设洞穴中的恶魔在 被打败后还会恢复原样。 ●简单的游戏流程及游戏的 实现 个从没有接触过编程和算法的 初学者来说,他所面对的就是这些 所谓的需要解决的任务,其实很难 算得上是真正的数学问题,因而既 缺乏趣味性,又不太容易给人以解 决任务的成就感。也有人想从现实 生活中寻找一些能引入程序结构的 问题,这当然是有益的探索,但带 来的问题也不少,生活实景的复杂 性和不确定性使得生活中实际问题 别是“战斗处理:小恶魔”和“变 量操作:[0001]+=l”,这些事件并 不需要打字输入,只要点击“执行 先看一个极其简单的游戏流 程:王子进入A洞穴打败恶魔后, 成就值加l一王子进入B洞穴,根据 成就值提取等量数值的金币。以上 内容”框中的菱形按钮,就可通过 向导添加(如下页图2)。例如,可 将[oool】号变量看作成就值,为 的描述变得相当复杂,而为了讲解 程序结构而特意构造出来的问题, 往往因为忽略了诸多生活细节,多 少让人感觉纯粹得有点不真实。然 而,却有一个简单、纯粹而“真实” 的可用于体验程序结构的任务,那 就是设计游戏。虽然说游戏世界本 身是虚拟的,但游戏的设计和游戏 图1 SEP 201 7 NO.1 7 19 信息技术课}tougao4@chinaitedu.crl 了在打败恶魔后增加成就值,可 点开“操作变量”向导并按图3所示进 行设置。 B洞穴添 加事件也是 两行,分别是 以上变量操作仍然可以利用向 导来完成。注意:这里操作数不是 常量,而是变量[0001】(如图4)。 只有文章显示需要手工输入, 这样在游戏中就会跳出对话框,文 字中需要展现的成就值和金币值可 用变量“\V[000l】''和“\V[o002】'' “变量操作: [00021+=变 量[0001]”和 “文章:你因 图2 表示(如图5)。 整个游戏就完成了,熟练后, 当前成就值 姆 @●齄 13001 ’ 操作过程仅几分钟而已。点“前进” 按钮可以调试程序:玩家到A洞穴 打恶魔就可以获得成就值,然后到 B洞穴根据当前成就值领取金币。 \V[O001]获得金币\V[O001],当前 : -o缱一 套作 共有金币\V[0002]''。 变量 0f队曩怍& @麟0鬻遵0熏洼0晾法0剿余 @掣臻I 0绒一 {I作 0002 : ’ : 这样游戏就运行起来了(如图6)。 @帜 0姐 ●带分支的游戏流程 0黜0秉法0昧洼0 o麓帆 0扬品 : : ∞研抖 0代入@眦撮作矗 但上述游戏流程有个漏洞,因 为玩家可以不停地到B洞穴中领取 。角色 。敌人 。角色 0其他 的 。糟 @变量 .000I :. ' : : 日 0撇 金币,所以就需要增加一个条件判 断,必须要和A洞穴的恶魔交战后 才可获得金币。要实现这个功能也 很简单,首先在A洞穴的事件中, 0协品 口、嘲{ " [ 图3 匝 o 鱼 0融人 0角色 0馨他 箕署耋帮露携壤 。00 获得金币、 。∞ ,当确 [3酲];_1j国0 图4 加入一行变量的赋值:“变量操 作:[0003]=1”,然后在B洞穴的事 件中,点出一个“条件分歧”向导 图5 (如图7)。 这时,软件就会自动生成一个 [!…~]2 0并关 I @姐3 ’‘ ’l值 ,f值 执行内吝 ◆条件分.I壹:变量【o003】一1 分支结构的框架,将先前的命令粘 贴到框架预留的空白处,另外再加 入一行“变量操作:[0003]=0”即可 , ◆姐撮作:【∞o2】..变量【0∞l】 ◆文章你因当瓣成鼗值、V【∞0l】获得金币、v[o001】,当苘 : :共有金币w[ooo2】 ◆变量攮作【oo031;0 ◆ 10003: @艘L 幽 0姐l (如图8)。 这样一来,只有在与恶魔战 斗后,变量[00031才会变成…1, 而领取金币后,变量[0003]就变回 “0”。可见,分支结构的实现也非 匾[] o鞍 一L;:fli■ ̄.-…- O-;+e ̄U厂—习甜广—I习秒r¨一 团 除此以外的场合 ◆文章:哼・想自拿金币?没那么奋易! ◆ :分歧培束 ◆ 图7 图8 常简单。 (下转第45页) 20 中国信息技术教育 tougao4@chinaitedu.ca f信息技术课 在知识迁移应用的过程中,他们的 综合能力得到极大提高。这是一个 再利用再创作的实践,思维方式的 不同,编程的过程也不同,这就需 要建立在他人成果之上的编程实 践,独立创作出更加复杂的作品。 了课堂展示评价和利用平台展示 评价两种主要形式。 课堂展示评价:教师在课堂 上展示学生的作品,通过创作者 说一学生互评一教师点评,在交 流分享中,促进学生的自我反思, 不断提升学生的思维。 利用平台展示:先进的教学平 台的支撑,为在线交流、共享提供 了很好的条件。为此,教师要积极 利用现有资源建立在线教学平台, 在活动的每一个环节,都可以提 学生可以相互学习,互相提高。 虽然创意设计课不是培养学 生计算思维的唯一途径,但在教 学中,如果教师能唤醒意识、创设 环境、有效引领,让学生在自由、 开放、互动的环境中积极能动地 进行目标性探究:生成一个主题, 让学生去探究;形成一个冲突,让 学生去讨论;凭借一个条件,让 学生去锻炼;拓展一个空间,让学 生去想象;利用一个权力,让学生 多元评价,提升“计算思 维”的品质 多元评价能帮助学生树立信 心,可以引领学生对计算思维价值 的认同。 创意设计课,对学生的作品评 价直接关系到对学生的创意设计 的认可。在教学过程中,笔者采用 去选择,那么,学生在创意设计课 中,一定能够理解计算思维的本质 和内涵,为其终身发展打下基础。 交作品到平台上,一方面教师可以 跟进各小组的学习情况,另一方面 参考文献: 【1]Wing,J.M(2006)ComputationAl thinking[J].Cornmunications of the ACM,49:33—35 【2]李廉.计算思维——概念与挑战[J]中国大学教学,2o12(1) 【3】王旭卿面向三维目标的国外中小学计算机思维培养与评价研究[J].电化教育研究,2014(7):48—53 [4】陈卫军基于计算思维 ̄Scratch游戏化教学模式研 J】l中小学信息技术教育,2016(8):72—73 【5】臧劲松培养学生计算思维的程序设计课程教学【J】.计算机教育,20120):78--80 接 溯 k .._ 、 ● “ ◇ ● 。。: t≈ ? 。 “ 黪体验循环中的累加 有趣的是,即便对于玩家,仅金币数(变量[0O02】) 0 0 死循环,游戏设计者还需要增添用 以控制获取金币数量上限的变量。 仅是在玩游戏通关的过程中,也同 样可以体会到程序结构的作用。上 述设计案例中,玩家为了增加金币 数量,可能会在两个洞穴之问来回 l 2 3 4 l 3 6 10 由此可见,虽然“RPG Maker XP” 的主要功能是用来设计RPG游戏的, 但它也有着很大的潜力用来展现各 种程序结构执行流程,并实时显示出 穿梭,玩家成就值的增长和金币数 量增长有如下的对应关系: 成就值(变量[O(】0l】) …… 不难看出,这其实模拟了循环 累加的过程,当然,为了避免无穷的 执行过程中变量的变化,若再配上 动画和背景音乐,就摇身一变而成 为有用的程序设计教学课件了。 对此期主题有任何好主意或建议,请发送稿件至kaikai_rabb{t@sina.corn(专栏作者)或七0ugao4@ }nai七edu.cn(杂志社)。 SEP 2017 NO.17 45