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