scratch 传感器 Scratch传感器板创意编程(九):森林小卫士
Scratch传感器板创意编程(九):森林小卫士
1
情景描述
宁静的森林里来了一群无恶不作的恶魔,它们在森林里横冲直撞、肆意毁坏森林。勇敢的森林小卫士为了保护森林挺身而出,他能不停地发射子弹,还能上下左右灵活躲闪。
在100 秒之内,小卫士能打败恶魔,取得胜利吗? 让我们一起帮助森林小卫士保卫森林吧!
2
创意构想
要完成这个任务,我们首先要制作能够移动的舞台背景,可以通过两张背景图片接连在舞台区移动来制作;然后设计脚本,让恶魔在森林里随意飞行、横冲直撞;
我们可以通过传感器板上的摇杆等多种传感器控制森林小卫士飞行、发射子弹、补充子弹 ;当然,游戏还应该有得分统计、生命计算等内容,让游戏变得更加有意思。
3
脚本设计
第一步:设置舞台背景与角色
1. 单击“角色列表区”中的
按钮,进入“矢量模式”,绘制如下图所示的“森林背景1”角色;绘制完成后再通过“复制”得到“森林背景 2”角色。绘制的时候要注意角色的造型中心应该在角色的正中心。
2. 再次单击“角色列表区”中
按钮,进入“矢量模式”,使用“文字”工具添加“You are the winner!”和“GAME OVER”两个文字角色,用于表示游戏胜利和游戏结束。
3. 游戏中的另外三个角色可以通过“角色库”对话框添加,它们分别是:森林小卫士(Gobo)、子弹(Bananas)、恶魔(Ghost2);调整这些角色的大小。
4. 对舞台上的七个角色按要求统一重命名,同时隐藏舞台上无关的传感器数值。
注:如果自己绘制角色有困难,也可以在网络游览器的地址栏中输入“haohaodada/b1”,在“好好搭搭”网站的本课范例作品网页中,单击“资源下载”选项卡,下载并解压本课所用到的角色图片,然后上传到 Scratch 的角色列表区。
第二步: 设置移动的森林背景脚本
为了增加游戏有趣味性,本课范例程序的背景会不断移动,让人感觉森林保卫战进行得非常激烈。
这样的效果其实是将两个“森林背景”角色交替在舞台上移动实现的。具体脚本如下图所示:
森林背景 1 的脚本 森林背景 2 的脚本
第三步: 编写森林小卫士角色脚本
森林小卫士是我们游戏程序的主角,它的第一段脚本用于角色的显示和移动,移动是通过传感器板上的摇杆控制的。
第二段脚本是重复判断森林小卫士是否碰到恶魔,如果碰到了,就闪烁两次。
第四步: 编写恶魔角色脚本
范例游戏中的恶魔通过克隆,从舞台的右侧不断向左侧飞行,向小卫士进攻。它的第一段脚本先设置隐藏角色,然后利用随机数指令,不断的克隆自己。
第二段脚本是当恶魔作为克隆体启动后,先在舞台右侧的随机起始位置显示,然后向舞台左侧的随机终点位置飞行。
第三段脚本是当恶魔作为克隆体启动后,如果在飞行过程中碰到子弹,就删除这个克隆体、播放被击中的声音;如果没有碰到子弹,飞行到舞台边缘时,也删除克隆体。
第五步: 编写子弹的脚本
本课范例程序的“子弹”就是“香蕉”,它是森林小卫士进攻的武器。
第一段脚本首先新建“子弹”变量,并设置它的初始值为“5”;然后重复执行:当子弹数量大于 0 时,按下传感器板上的“Up”键,会克隆子弹、播放发射子弹的声音、减少子弹变量值。具体脚本代码如下左图所示。
第二段脚本是当“子弹”作为克隆体启动后,先移动到“森林小卫士”角色边上显示,然后使用重复执行指令:让“子弹”向右移动、同时旋转产生动态效果,增加游戏趣味性;同时判断子弹克隆体在飞行过程中,如果碰到恶魔或者舞台边缘,都删除克隆体。具体脚本代码如上右图所示。
第三段脚本是检测有没有按下传感器板上的“Down”键,如果按下了,那么重新设置子弹数量为 5。具体脚本代码如下图所示。
第六步: 设置生命系统
为了增加游戏的可玩性,还可以设置游戏的生命系统。本课范例游戏中,当森林小卫士被恶魔碰到,它的生命值就会减少,当生命值为零的时候,游戏失败。随着生命值的减少,传感器板上的蜂鸣器可以发出不同的警报声音 。
首先选中“森林小卫士”角色,新建“生命”变量、设置生命变量的初始值为 5;然后在森林小卫士脚本中修改“重复判断”指令为“重复执行直到生命值小于 1”;在碰到恶魔的代码中,再添加生命值减 1 的指令;当生命值等于 0 时,广播“游戏结束”。“森林小卫士”完整的脚本代码如下左图所示:
第二段代码同样也在“森林小卫士”脚本中添加,在“重复判断”指令中判断:当生命值小于 4 并且大于 1 时,传感器板上蜂鸣器发出相对急促的警报声;当生命值等于 1 时,蜂鸣器会发出非常急促的警报声。具体脚本代码如上右图所示。
第七步: 设置计分系统
一个完整的游戏,还应该有计分系统。 本课范例游戏中,每次“森林小卫士”的子弹击中恶魔,就会累计得分,当得分达到一定的数值时,广播“游戏胜利”消息。
首先选中舞台背景缩略图,新建“得分”变量、设置“得分”变量的初始值为 0;然后在重复指令中判断:如果得分变量大于 490(也就是达到 500 分),就广播“游戏胜利”。具体脚本代码如下图所示。
还应该选中“子弹”角色,在它作为“克隆体启动”的脚本中添加:如果碰到“恶魔”,那么“得分”变量值增加 10。
第八步: 设置游戏计时系统
为了增加游戏的难度和紧张感,一般在游戏中还需要加入计时系统。在范例游戏中,游戏时间为 100 秒,随着时间的减少,传感器板上的绿色、黄色、红色 LED 灯会依次亮起,提示玩家注意时间。
同样也是先选中舞台背景缩略图,新建“时间”变量、设置“时间”变量的初始值为“100”;然后添加倒计时脚本:以秒为单位依次减少时间,当变量为 0 的时,广播“游戏结束”。具体脚本代码如下左图所示。
还可以在舞台脚本中添加传感器板上的 LED 灯提示脚本:当时间大于 50 秒时,绿灯闪烁;当时间等于 50 并且大于 20 时,黄灯闪烁;当时间小于 20 时,红灯闪烁。具体脚本代码如上右图所示。
第九步: 设置游戏结束
本课范例游戏一开始,“游戏胜利”和“游戏结束”文字角色隐藏;当接收到“游戏胜利”或者“游戏结束”消息时,显示相应角色。具体这两个角色的脚本代码如下图所示:
Scratch传感器板创意编程(七):猴子接香蕉
1
情景描述
小猴子最喜欢吃香蕉。可是这次,它遇到了麻烦,调皮的香蕉被施了魔法,会随机地出现在不同的地方;让我们使用传感器板上的摇杆,帮助小猴子接香蕉,让它在规定时间内得到更多的香蕉。
2
创意构想
要完成本课范例,可以先添加舞台、角色,设置舞台和角色的初始状态,然后让香蕉随机地出现在舞台上,同时通过传感器板上的摇杆控制猴子在舞台上移动 。
如果猴子接到香蕉,会累积成绩,还可以设置游戏的持续时间,在规定的时间内接到的香蕉越多成绩越好。
要完成本课的创意构思,需要了解以下的新知识、使用以下的新指令:
摇杆
摇杆可以前、后、左、右四个方向拨动,接收用户位移的数据,非常方便地控制角色在Scratch 舞台上移动。
读取传感器板上摇杆的 X 轴数值,取值范围(0,1023)。
读取传感器板上摇杆的 Y 轴数值,取值范围(0,1023);
3
脚本设计
第一步:设置舞台背景与角色
1. 通过“背景库”对话框添加“blue sky”图片作为舞台背景;再通过“角色库”对话框添加猴子(Monkey2)、香蕉(Bananas)角色;调整这两个角色的大小,将它们拖动到舞台的合适位置。
2. 隐藏舞台上除“滑杆”以外,其它无关的传感器数值。
第二步: 编写香蕉角色脚本
“香蕉”是由程序自动控制,随机出现在舞台上,考虑到猴子都是在树林中活动,因此“香蕉”角色出现的位置应该只是舞台上的树木区域。
“香蕉”角色碰到“猴子”角色或者停留一定的时间后自动消失,然后重新在新的位置出现。
第三步: 编写猴子角色脚本
“猴子”角色的脚本共有三段代码。其中第一段先设置猴子的初始位置和大小,然后根据传感器板上摇杆的位置值,设置猴子在舞台上的位置。
由于摇杆值 X 的取值范围是(0,1023),而舞台上 x 坐标的范围是(-240,240)。同样的,摇杆值 Y 的取值范围是(0,1023),而舞台上 y 坐标的范围是(-180,180)。
所以想要使用摇杆去控制角色在舞台上的位置,需要对摇杆的 X 和 Y 值进行数值转化。
为了容易找到摇杆 X 和 X 坐标之间的对应关系,我们直接把 1023≈1000。“摇杆 X”和角色“X 坐标”的关系如下图所示:
可以先把 X 坐标的值统一转化为正数,这是为了更好地找出“摇杆 X”和“X 坐标”的倍数关系。
再观察上图,我们发现“摇杆 X”÷“X 坐标+240”=1000÷480,推导出:
“X 坐标+240”=“摇杆 X”÷(1000÷480),最终得出转化关系:
“X 坐标”=“摇杆 X”÷(1000÷480)-240
用传感器板上的“滑杆 X”控制角色的“X 坐标”脚本代码如下图所示:
第一部分完整脚本代码如下:
第二段脚本代码是进行成绩统计。 先添加一个变量“成绩”,并设置这个变量的初始值是“0”,用来保存接到香蕉的个数;然后判断猴子是否碰到香蕉,如果碰到,那么“成绩”变量值加 1,播放“猴子”角色自带的声音,同时说出当前所接到的香蕉数量。
第三段是通过“猴子”角色的造型切换,让游戏更好玩。
第四步: 编写舞台背景脚本
舞台背景脚本是对游戏时间进行控制。 先添加一个“时间”变量,并设置这个变量的初始值是“30”,也就是倒计时 30 秒;然后每过一秒,“时间”变量值减少“1”,一直重复执行到“时间”变量值为“0”;最后停止全部角色脚本。
相关问答
scratch 为什么鼠标拖动不灵活?此...可能是因为鼠标底部有灰尘或杂物堆积,导致摩擦力增加,影响了鼠标的灵活性。另外,鼠标的橡胶垫也可能磨损或老化,使其与表面接触不足,影响拖动的灵活度...
scratch 为什么换成mind?1.是硬件支持,Mind+基于Arduino、micro:bit、esp32的相关产品,Mind+完美的将三个硬件平台与Scratch软件平台进行了融合,使其拥有一致的使用体验;2.Mind+可以....
kittenblock.和 scratch 的区别?Kittenblock和Scratch都是针对初学者设计的编程语言,但它们具有以下区别:1.基于不同的平台:Scratch是MIT(麻省理工学院)设计的,可以在scratch.mit.edu上.....
wedo20距离 传感器 怎么用?wedo20距离传感器可以通过LEGOMindstorms教育版软件中的编程模块来使用。以下是基本的使用步骤:1.把wedo20距离传感器连接到LEGOMindstorms教育版套件中的...
积木动力组怎么编程?编程积木动力组需要使用类似Scratch的可视化编程工具,例如mBlock。首先,需要将积木动力组与电脑连接并打开软件。然后,可以通过拖拽积木块来组合程序,包括设...
少年宫机器人课程学什么?1.机器人基础知识:学习机械构造、轮式编码器、控制系统和电钻和机械臂等知识。2.电子技术:包括传感器、线路板的使用、电源、编程IDE等等。3.程序设计:教...
为什么能够提高孩子动手能力的硬件编程却鲜为人知?注。彩虹板的学习门槛低,经过简单的学习,即可作出各种有趣的作品。编程完毕后,点击下载,直接可以显示在彩虹板上。还有更多免费的零基础入门彩虹课堂让小朋友...
请问: scratch 编程哪家强?[回答]机器人课程:机器人学科教学(RobotSubjectInstruction,简称RSI)机器人学科教学,是指把机器人学看成是一门科学,在各级各类教育中,以专门课程的方式,...
波士顿机器人是怎么编程的?波士顿机器人的编程方式采用了编程语言Scratch以及Python。以下是波士顿机器人的编程步骤:1.打开波士顿机器人的编程软件,选择适合的编程模式(比如图形化编程...
学机器人编程需要什么底子?哈工科教少儿机器人编程教育专注5—18岁青少儿编程教育,为各个年龄段的少儿提供进阶式机器人编程培训。AI编程,赢未来。1、你好,零基础也是可以学习机器人编...