(共14张PPT)
课前准备
谷歌浏览器:
https://playground./
一、试玩游戏
二、游戏分析
(一)玩家分析
1.玩家最后要胜利
2.玩家胜利的条件:躲避攻击并攻击敌人
玩家
二、游戏分析
(二)敌人分析
伙计:扫描到敌人并快速发射炮弹攻击
猎手:在对角线上巡逻并攻击敌人
骗子:在中线左右来回巡逻并上下左右扫描攻击
三、任务分解
(1)躲避敌人
(3)精准攻击
(2)发射炮弹
(4)追踪敌人
玩家
四、脚本实现
(1)躲避敌人
0
180
270
0
技巧:不断增大角度,
使玩家转圈游动,躲避敌人。
四、脚本实现
变量:会变化的量,不是固定的数字。
角度
0
10
声明变量:角度,初始化变量值为0。
四、脚本实现
角度不断加2变大,可以使玩家逆时针转圈游动
思考:如何让玩家顺时针转圈游动呢?
四、脚本实现
(2)发射炮弹
思考:如何设置炮弹发射方向?
玩家不断发射炮弹
*只能朝固定的一个方向发射炮弹
四、脚本实现
(3)炮弹精准攻击
技巧:scan( )扫描到敌人后,返回的是与敌人的距离。所以将加农炮的射程设置为scan()就可以精准攻击到敌人。
炮弹射程是固定不变的,无法精准攻击到敌人,浪费炮弹和时间。
四、脚本实现
(4)追踪敌人
玩家扫描到敌人后,不再转圈,而是停下来对着敌人不断发射炮弹攻击敌人,“追着”敌人打,实现追踪功能。
技巧:当玩家与敌人距离<=50时,发射炮弹攻击,直到敌人死亡,才继续转圈寻找下一个敌人。节省炮弹和时间。
五、拓展探究
当玩家生命值低于50时,加快躲避速度。
谢谢观看第 16 课《水战》教学设计
一、教材分析:
本课水战是块语言编程游戏的最后一课,是一个综合性课程。它是一个为最聪明的鸭子
设计的开放式比赛游戏,玩家需要根据前面所学的块语言编程的知识和提供的积木来完成一
个完整的水战游戏,让黄色的鸭子“玩家”最终在水战比赛中获得胜利。在这里需要充分开
发设计者的思维,可以有多种方式完成游戏设计。既可以使用块语言,也可以用 JavaScript
语言进行编程。在本节课设计中,采用块语言编程积木进行编程,让黄色鸭子“玩家”以攻
击为主,防御为辅,快速结束比赛获得胜利。在活动中,熟悉掌握前面所学的顺序结构、循
环结构和选择结构等积木,并学习新的积木“变量”和变量相关积木的使用方法。
二、学情分析:
学生在在前期接触了块语言编程网站,学习了块语言编程的基础,能够熟练使用块语言
编程的“水战”、“逻辑”、“循环”等模块的积木,能够通过这些积木完成一些基本的
编程游戏。但是对本节课即将出现的“变量”模块的积木较为陌生,由于变量的含义对三年
级的学生而言较为抽象,所以本节课需要突破“变量”这个难点。
三、教学目标:
1.知识和技能:
(1)知道并理解“变量”的含义;
(2)能理解“while”、“if”等语句的内在逻辑关系;
(3)能理解并使用“scan()”、“cannon()”和“swim()”等积木完成角色相关动
作。
2.过程与方法:
通过设计“水战”游戏,能掌握设计游戏的思路:分析游戏——分解任务——实现脚本
——测试功能。通过本节课四个小任务的闯关活动,能结合老师的讲解,充分开动脑筋,在
活动中一步步掌握完成一个游戏的思路和方法,并在过程中锻炼了计算思维和逻辑思维。
3.情感态度与价值观:
在游戏中培养学生良好的竞技意识,提高学生对计算机编程的乐趣。
四、教学重难点:
1.教学重点:理解深入的逻辑关系,并能熟练利用各种积木设计完成一个完整的游戏
2.教学难点:理解“变量”并掌握变量相关积木的使用方法
五、教学策略:
本课主要贯彻做中学的思想,采用了任务驱动和问题解决的教学方法。在教学中,引导
学生观察和分析游戏,将游戏角色和相关动作进行分析,细化程四个阶梯性小任务,让学生
在一个个小任务中逐步解决问题。“水战”游戏是开放性的游戏,可以有多种方法解决问题。
本节课意在引导学生寻找解决问题的方法,鼓励学生用多种方法解决问题。通过“水战”游
戏让学生能够掌握设计游戏的思路:分析游戏——分解任务——实现脚本——测试功能。基
于前面“训练”一课已经学习过“scan()”、“cannon()”和“swim()”等积木,本
节课将在此基础之上,引导学生设计游戏。同时引入新的积木“变量”,对变量的含义和相
关积木的使用方法进行了详细的讲解,让学生应用“while”、“if”等语句,结合变量,逐
步展开活动,实现最终学习目标。
六、课前准备:
谷歌浏览器打开块语言编程网站:https://playground./
七、教学过程:
教
学
教师活动 学生活动
环
节
课 提供块语言编程网址,引导学生提前登陆网站,选择“水
前 战”主题任务
登陆编程网站
准
备
1、教师试玩“水战”游戏,激发学生的好奇心和胜负欲: 1、学生观看教师演示并思考
该如何让黄色鸭子“玩家”获得游戏胜利呢?
引 2、学生自己试玩游戏,并思考如何设计游戏。 2、试玩游戏并思考
出 引出本节课的问题:该如何设计游戏,让“玩家”角色获得
问 胜利呢?
题
教师引导学生一起分析游戏 认真听教师分析并思考,如何
角色组成:玩家、骗子、伙计和猎手 4个角色 让玩家获得胜利。
游 目的:让玩家获得胜利。
戏 玩家胜利的条件:躲避攻击并攻击敌人。
分 敌人分析:
析 骗子:在中线左右来回巡逻并上下左右扫描攻击
伙计:扫描到敌人并快速发射炮弹攻击
猎手:在对角线上巡逻并攻击敌人
同学们,我们要让玩家胜利有很多种方式。我们通过观察发 学生听讲并思考如何编写脚
现,黄色鸭子“玩家”被攻击后生命值减少地较慢,而且三 本
个敌人之间也是会相互攻击的,所以我们可以采用“攻击为
任 主,防御为辅”的思路设计游戏。究竟“玩家”怎样才可以
务 赢呢?老师将“玩家”任务分解成四个小任务。
分 任务一:躲避敌人
解 任务二:发射炮弹
任务三:精准攻击
任务四:追踪敌人
那么该如何编写脚本呢?
脚 任务一:躲避敌人 1、学生编写 swim()积木并
本 1、“玩家”可以通过游动的方式躲避敌人炮弹攻击。前面 运行看效果。
实 已经学习过“swim()”积木,回顾该积木的使用方法。
现
同学们自己尝试编写“玩家”游动的脚本吧。
2、我们发现“玩家”只能够朝着一个方向游动,而且游到 2、发现问题并思考
边缘就游不动了,同学们思考为什么?可以怎么解决?
这是因为 swim()的方向是一个固定的数字,所以只能朝
一个方向游动。我们可以让游动的角度不断增大,就可以让
“玩家”转圈了。
0
那怎样让角度不断变大呢?这里我们需要学习一个新的积
木:变量。变量顾名思义就是会变化的量,不是固定的数字。
就像一个盒子,如果往里放入数字 0,那么角度就等于 0度,
如果放入数字 10,那么角度就等于 10 度。
注意:任何变量都需要先声明变量,并初始化变量值。
那么具体脚本该怎么编写呢?我们一起试试看吧。
3、教师演示脚本编写过程 33
4、编写脚本完成任务一
4、同学们尝试自己动手编写吧。
5、思考将角度+=2改为“-2”
5、角度每次增大可以逆时针转圈,那么如果要让玩家顺
时针转圈,该如何修改脚本呢?
任务二:发射炮弹
1、前面已经学习过炮弹发射,同学们自己编写脚本试试看。 1、学生编写加农炮的脚本实
现发射炮弹
2、发现问题:只能朝固定的一个方向发射炮弹。思考:如何设置炮
弹发射方向?老师提醒用变量角度。 2、学生思考并自主尝试编写
3、运行发现炮弹经常打不中敌人?这是为什么呢? 3、思考问题
这是因为炮弹射程是固定不变的,无法精准攻击到敌人。所以这里
我们需要完成下一个任务
任务三:炮弹精准攻击 学生编写脚本实现任务三
为了精准攻击到敌人,我们需要使用一个技巧:利用 scan( )
积木。
请同学们查看 scan()积木的提醒。
原来 scan()积木扫描到敌人后,返回的是与最近敌人的距
离。
根据提示,scan()扫描到敌人后,返回的是与敌人的距离。
所以将加农炮的射程设置为 scan()就可以精准攻击到敌人。
任务四:追踪敌人
我们发现尽管射程已经修改了,可是还是不能精准攻击都敌 学生听教师讲解并完成任务
人,这是因为“玩家”在不断转圈,炮弹没办法集中攻击。 四。
所以我们要让玩家扫描到敌人后,不再转圈,而是停下来对
着敌人不断发射炮弹攻击敌人,“追着”敌人打,实现追踪
功能。
那么该怎么实现呢?
我们需要判断敌人是否在敌人附近。当敌人在一定范围内
时,玩家就不再转圈,而是停下来攻击敌人。
那么如何判断与敌人的距离呢?
我们可以设定,当玩家与敌人距离<=50 时,发射炮弹攻击,
直到敌人死亡,才继续转圈寻找下一个敌人。节省炮弹和时
间。这里需要进行距离判断,跟着老师一起编写吧。
有个新的积木:health()是指角色的生命值,范围是 0-100。 学生思考并完成拓展探究任
请同学们思考,当玩家生命值低于 50 时,让它加快躲避速 务
度。要如何编写脚本呢?老师提醒可以修改以下积木:
拓
展
探
究
同学们动手试试看吧。
总 同学们,解决问题的办法往往不止一种。同样让“玩家”胜
结 利的办法有很多种,我们本节课只是完成了其中的一种,请
提 你们继续思考,还有哪些办法可以使玩家胜利呢?欢迎爱动
升 脑筋的同学下次将你们的新办法告诉老师哦。
八、板书设计:
水战
变量:会变化的量
声明变量
初始化
九、附脚本截图