我爱游戏_掌控板_Chrome恐龙游戏
一、基本信息
作品名称 我爱游戏_掌控板_Chrome恐龙游戏
作者姓名 于飞
作者单位 嘉善信息技术工程学校
教材名称 《慧编程》
教材类型 自编教材
教材简介 自编校本教材,作为学生自由选修课使用,丰富学生课程生活,打造“四力融合,课程改革”,符合其中创造力的学习。
执教年级 职业高中
课时长度 2课时
涉及器材 掌控板
涉及软件 mPython
文件清单 教学设计、配套视频、配套代码
二、作品内容
【硬件搭建】所需材料掌控板和数据线,用数据线将掌控板和电脑连接,选择已经连接COM接口,点击连接成功。
【作品功能】点击“运行”将程序上传到掌控版。
初始时,变量score为0(不显示,主角每通过一个障碍物变量score+1,当游戏结束后会显示在第二行);
地面是水平直线,所有元素不会低于该地面;
按下A键中空半径为2的圆向上“跳起”,后再自由落下(使用重力加速度方程,模拟跳跃,效果更佳,不再那么线性);
障碍物为两个中空矩形,自右向左运动,当x坐标小于20时变量score+1,会开始新的循环,两个矩形的大小、运动速度相同,只是初始位置不同;
游戏运行,圆形主角需要掌握好时机跳跃过每一个障碍物,继续游戏,如果碰到障碍物游戏结束,显示得分。
【教材与学情分析】:本课是《慧编程》的第七节课,这些学生在上一学期已经完成了scratch的基础学习,对于逻辑语句的使用已经没有障碍,但是没有接触过市场上的编程外设,这次课之前学生们已经学习过6次关于掌控板的课程,对于图形绘制、坐标系、基础数列和逻辑语句(包括嵌套语句)已经有了一些了解。通过对网页游戏的改编,制作了一个可以独立在掌控板上运行的小游戏,不仅让学生熟悉了这款外设,更能提高学生的学习兴趣。
本课授课对象是中职一年级编程兴趣班学生,学生人数40人以上。中职类学生相对普高来说数学和英语的基础素质较差,所以选用这样一款图形化编程软件,上学期有过scratch的基础,搭配掌控板可以实体操作,相信这些学生可以通过自己的操作,真正的做出一款小游戏,重拾自信。
【学习目标】:1.熟练掌握mPython和掌控板的使用。
2.熟练使用mPython中各种图形的绘制。
3.学会编辑物理数学公式并应用在项目中。
4.实现图形模拟物理效果的运动。
【学习重难点】
重点:1.熟练使用“数学”模块中的语句。
2.在坐标系中让绘制图形模拟物理运动。
难点:物理公式应用在项目中,使得运动不再那么线性,更佳贴近仿生游戏。
【教学资源】:学生机房、电脑一人一机、掌控板六人一块、 学生机与教师机局域互联并安装mPython软件;成品体验。
【联系实际】
Chrome浏览器在无网状态下会有一个环节尴尬的小游戏,我不知道这个游戏的名字,暂时称呼它为小恐龙吧!
这次我们是使用掌控板来特意制作这样一款小游戏。使用圆来替代小恐龙,使用矩形来代替前方袭来的仙人掌。
球的y轴使需要转换为整型(因为后面会进行y轴的模拟跳跃重力曲线来坠落,即自由落体方程,涉及到重力加速度等知识点,后面我们讲解)。设计了两个矩形,用于模拟自右向左运动的“仙人掌”障碍物。
【预设流程】
环节一、新建变量(说明变量)
教师活动:播放demo视频,与学生进行互动问答:
“障碍物的y轴坐标会改变么?”
“主角恐龙的那个坐标不会变?”
“重力加速度的公式是什么?”
“实现跳跃功能,我们的初速度是正是负?”
一边新建变量,一边解释说明:
x1障碍物1的初始x坐标;
x2障碍物2的初始x坐标
g重力加速度的g值;
t跳跃计时变量;
ct时间变化的增量,初始为0,当按下A开始跳跃后为1,落地后为0;
v0主角向上跳跃的初速度;
y主角y坐标;
score分数,不显示,运行时累加,结束后显示。
学生活动:观看教师演示,回答问题(教师进行引导学生作答),学生带着问题开始新建可能会用到变量。
设计意图:师生互动,已经学习过6次课的学生应该可以对部分功能的实现有自己的办法,此次互动就可以分辨学生的情况,着重管理互动性差的学生。
环节二、重力加速度公式编辑和调整
教师活动:教师端打开mPython软件,广播屏幕,开始脚本编辑,一边制作,一边讲解,主角空心圆形,当按下A键时,跳跃,初速度V0=-20,这时使用百度查了一下“加速度”的概念。我们日常生活中跳跃也是一种加速度运动(受到g),只是我们的跳跃高度实在太低,不然我们时可以感受到地球给我们带来的加速度g。
下面是y轴的计算,大家可以自信看一下:
Y=58是主角的初始y坐标,v0是按下A时触发的初始速度,向上运动所以为-20;
t是时间,从按下A开始计时,直到小球的y轴位置大于58为止(大于58会重新计时);
g是重力加速度,正常值为9.8,这为了更好的匹配128*64的分辨率效果所以调整为3。
学生活动:观看教师演示脚本编辑,尤其是主角y轴的运动计算方程,注意变量t的使用,只有当按下A时,ct=1,t开始累加,当y回落到58时,ct变为0,t的增量变回到0。这里非常重要,需要花费的事件也会多一些。
设计意图:之前的作品在“跳跃”功能这里总是会过于线性,运动不够自然,通过使用重力加速度来模拟跳跃过程,相对自然许多。最重要的是,让学生体会到了多学科融合的乐趣。
环节三、矩形障碍物的运动和循环
教师活动:教师广播屏幕,边界脚本(mPython界面),一边操作编辑,一边对编辑内容进行讲解,当障碍物x坐标小于等于20时,障碍物会重新移动到x=128的位置,重新开始向左运动,x1和x2都是一样的。
主角和障碍物发生碰撞:
主角圆形的半径为2,坐标点在圆心;障碍物矩形长为15宽为3,坐标点在左上角。
教师在机房的白板上进行示意图绘制,再次讲解。
学生活动:学生观看教师操作演示,接着自己进行脚本编辑,完成后上传烧录,查看运行效果。
环节四、游戏结束和函数调用
教师活动:
教师讲解游戏结束(失败)的判断,游戏结束的判断,做了两个如果语句,实际上是相同的,都是在判断主角有没有和障碍物1或障碍物2发生碰撞,我这里分开写的,如果同学们想要加入更多障碍物元素,可以参考如下脚本,道理是一样的,只要不发生碰撞,游戏就会一直进行下去。
结束后会调用my_func函数,是一个简单的自建函数,当主角和障碍物发生碰撞时,会先调用这个函数,然后中断循环。
为什么会制作my_func函数,而不让分数在运行的时候直接显示在屏幕上?
由于现实分数会让掌控板的刷新速度变慢,所以去下实时显示分数,改为在游戏结束时,显示分数。
学生活动:学生观看教师制作,结束后自行边界,并对比运行时显示分数的方法。两种方法对比后向教师反馈。
环节五、比较脚本
教师活动:将已经边界好的脚本截图发送给学生端。让学生们自行纠错,欢迎自制的新奇特想法跟大家分享。教师机房巡视,及时协助学生修改bug。
学生活动:上传修复好的脚本,如遇问题举手示意教师协助解决,待完成后,运行流畅的同学可以分享自己的作品。
【拓展探究】
教师活动:这次的“仿生”跳跃,区别于之前的跳跃效果,重点在于我们自制了跳跃模拟公式(重力加速度)。游戏中一定还有不足,请举例。
解决方案:
学生,其中障碍物的数量、高度、出现频率与“原著”有些区别,我想改进它。
教师建议,数量的话,原著有的时候回连续出现1~3个的随机障碍,建议使用重复语句,每轮循环出现随机个数的障碍物。
【交流总结】
教师活动:请每一组出一个代表,展示并说明自己的作品。
学生活动:组代表进行展示,一边运行,一边解说游戏。说出跟人观点(那些地方需要改进,通过学习,提出程序的具体改进方法)
设计意图:小组之间互相对比,各有不同,相互学习。通过每隔代表的介绍,可以判断学生的掌握情况,梳理了整节课的知识重点,改进方向的提出,放手让学生去做,增强互动性,让更多学生做出不一样的程序。
【教学反思】
不足:
游戏的障碍物过于简单,应该增加障碍物的数量和障碍物的种类,让游戏更具有挑战性。
优点:
自己制作的小程序可以脱离电脑独立运行;
结合初中物理学科“重力加速度”的等相关知识点模拟主角小恐龙的跳跃和降落过程,尽量做到“仿生”,作品效果更好,同时带着学生将物理、数学、编程进行学科融合,学的有趣记得扎实。
附件:
点赞