1、Scratch教程04-小猫脱险蝙蝠和小猫回顾 广播 蝙蝠广播一个消息“boo_message”,说“我来了”小猫 接收到消息“boo_message”后,赶紧开溜帮助小猫脱险 打开上一节课完成的“小猫和蝙蝠”程序。点击绿旗并按下空格键运行程序。小猫是不是始终在森林里走来走去跑不出去呢?帮助小猫脱险 为了让故事有一个美好的结局,让我们来帮助小猫逃离蝙蝠的威胁 小猫可以逃到哪里去呢?改变背景 我们可以设计当小猫碰到舞台边缘的时候,让他进入我们选定的背景从而逃脱蝙蝠。为了让小猫碰到边缘时改变背景,我们需要知道:1.小猫怎么知道自己碰到了舞台边缘?2.当小猫碰到边缘时会有什么发生?3.当小猫碰到边缘
2、时,舞台怎么知道该改变背景了?设计故事情节写下我们希望故事里发生的每一件事情 小猫,蝙蝠和舞台是我们这个故事里面的角色。小猫:当它碰到舞台边缘后,说自己被撞痛了,然后广播一条消息。蝙蝠 收到消息后,隐藏、然后停止动作。舞台:收到消息后,改变背景。小猫怎么知道他是什么时候碰到边缘的?Scratch中,当一个角色触碰到某个物体时,有一个程序块是可以感知到的。我们可以使用“touching _?”程序块来感知小猫是否边缘:True(真)或False(假)请思考以下问题:“小猫碰到舞台边缘了吗”?有几种可能的答案?1.碰到=True2.没有碰到=False3.或者其他答案=?同学们想想除了True和F
3、alse外还有其他可能的答案吗?测试“Touching”程序块 现在我们来看看“Touching”块如何运行的,看看它会不会像我们期望的那样工作。创建“Touching”块并放置在小猫的脚本区域:我们可以用鼠标点击该程序块来运行它,但不启动小猫的其它脚本。测试“Touching”程序块 按下 停止所有脚本 按以下方式用鼠标拖拽小猫:拖动小猫让他碰到舞台边缘,然后点击 拖动小猫离开边缘,然后点击 单元测试 我们测试过 了,而且它按照我们希望的方式去做了。这一方法在计算机编程里面叫做“单元测试”,因为一个程序块就是程序里的一个“单元”我们测试了这个程序“单元”每一种可能的结果,并确定它是有效的。以
4、后当我们遇到不确定怎么用的模块,我们也可以用同样的方式来进行测试。当小猫碰到边缘时如何让某些事发生?还记得 块吗?当小猫碰到边缘时将改变方向。但我们希望小猫碰到边缘后能做一些其他的事情当小猫碰到边缘时如何让某些事发生?我们必须用“if then”控制块,创建自己的“if touching edge”块:The“If”语句l If语句用来判断条件为真(True)或者为假(False):l 如果条件为True,则执行“If”块内的脚本。l这里指小猫碰到了边缘,所以执行if块内的说话脚本。l 如果条件为False,则“If”块内的脚本不执行l这里指小猫没有碰到边缘,所以跳过整个“If”块。二进制逻辑
5、和“If”语句 计算机编程中“If”语句是一个很重要的工具。计算机是基于真和假来做决定的,其中1为真,0为假。尽管计算机只需要考虑两种可能性,它却可以在一秒钟之内做出10亿个true/false的决定。这永远快于人类大脑,但不用担心,我们的大脑可以做很多计算机不能做的事情,而且计算机必须要我们来告诉它做什么他才会做什么。将所有脚本集中到一起 现在我们知道边缘触碰代码可以工作了,就可以将这段代码放到故事里边了。运行故事 按下绿旗开始执行故事并使蝙蝠出现;我们希望蝙蝠每次碰到舞台边缘就说:“Ouch!That hurts”现在程序运行正确吗?下面的脚本干了什么呢?调试(Debugging)当小猫碰
6、到边缘时并没有说:“Ouch!That hurt”这时我们就说程序出现Bug了。Bug指计算机没有按照我们所期望的那样去做。对于计算机程序的bug,我们必须找出来并且修复它,这一过程叫调试“debugging”为了调试小猫的脚本程序,我们必须仔细检查程序并思考为什么会出错。调试(Debugging)下边这段代码到底能做什么呢?你发现问题了吗?-提示1:这段代码运行了多少次?-提示2:将小猫放到舞台边缘,然后点击绿旗。判断小猫是否碰到边缘的脚本是不是只执行了一次。调试找到Bug 我们发现这个脚本只能用来检查小猫是否只碰到边缘一次。脚本执行完一次后就再也不检查是否碰到了舞台边缘。但我们希望计算机一
7、直不停地检查小猫是否碰到了边缘。这一过程在编程里面就叫做“轮询”(polling)轮询 轮询是指一直提出问题并获得结果。我们希望计算机不停地询问:“小猫碰到边缘了吗?”为了达到这个效果我们可以使用forever循环:将forever循环放到小猫的脚本区,执行脚本并观察现在发生了什么?我们学到哪里啦?我们已经完成了:怎么让小猫知道他碰到了边缘。当小猫碰到边缘时如何让某件事发生。现在我们是不是需要完成,当小猫碰到边缘时如何改变场景舞台怎么知道应该在什么时候切换场景?我们可以写一个脚本,来改变场景。舞台有自己的脚本区。当小猫碰到舞台边缘时我们怎样改变背景呢?-提示:还记得昨天我们怎样让小猫知道自己该
8、逃跑了吗?舞台怎么知道应该什么时候切换场景?舞台是不是也可以从小猫那里收到广播消息?。首先,我们可以编程让小猫每次碰到边缘后就发送一个广播消息:创建一个新广播消息将消息放到当小猫碰到边缘时执行的代码中。改变舞台背景 当小猫碰到边缘时舞台必须接收广播消息;收到广播消息后舞台就切换背景 在故事开始时我们的背景是森林背景 开始你的故事点击绿旗,然后按下空格键显示蝙蝠。现在,当小猫逃跑并碰到边缘时应该改变场景。但是小猫并没有逃脱蝙蝠:背景改变时我们要让蝙蝠消失逃离蝙蝠当收到“TouchingEdge”广播消息时蝙蝠应该藏起来:有趣的试验 将更多的背景加入舞台。每次当小猫碰到边缘时切换到下一个场景。事件(Events)在计算机编程中,发生的某些事情叫“事件”(Event)我们已经学过以下3类事件:绿旗开始块按键块广播课后作业 让大家完成一个大鱼吃小鱼的游戏 大鱼可以跟着鼠标移动 当大鱼碰到小鱼时,大鱼嘴巴张开,小鱼被吃掉