前些日子CC哥出去度假了,所以有两周没有更帖,希望大家原谅了。

最近跟几个小朋友沟通,都反馈说CC哥讲得太快了,尤其是上一个帖子内容好多,一下子吸收不了。CC哥在这里接受批评,后面的几节课,CC哥将调整教学方式,会把编程的内容简化,但是把编程思路,方法和每个指令的用法讲透彻,至于编成什么样子的程序,就看小朋友们的发明创造。

游戏构想(需求分析):

第一:场景和角色的确定

我们想编一个什么样的游戏呢?我们想创建一个海底世界,那海底世界里有什么呢?有鱼,各种各样的鱼,咱们搞简单点,假设就有三种:有鲨鱼,有小鱼,还有海星。

第二:任务

那这三种角色的关系是什么呢?鲨鱼肯定是要吃小鱼,小鱼就只能吃海星了。我们的游戏主人公就是小鱼吧,那么我们需要吃小鱼才生活,但是还不能被鲨鱼吃掉。所以我们的任务就是吃最多的小鱼,还不能碰到鲨鱼。

算法设计(1):

控制小鱼的自由移动。

控制角色的移动有很多种方法,之前的讲座里也提到过几种,其中一种典型的方式就是跟着鼠标走,鼠标到哪里,角色就到哪里。正好有一个积木指令可以实现这种功能。

程序脚本(1)

1:通过背景设置选择一个海底背景。

2:选择一个新的角色。(注意角色的大小可以通过工具栏的缩放功能简单实现,比如要缩小角色,就先点击工具栏上的缩小按钮,然后再去点击角色即可)

Scratch第七讲:海底世界(一)

3:设置角色跟随鼠标移动。

《编程逻辑要点》

这是今天一讲的关键点,角色跟着鼠标移动的逻辑是什么?角色为什么会时刻跟着鼠标在动?这是我们在理解编程逻辑时,一定要学会问的问题。

有一个指令块我们可以用到,移动到鼠标指针。这个下拉菜单还有别的选项,小朋友可以自己随便试试。

Scratch第七讲:海底世界(一)

当我们用了这个指令块,当程序执行到这一步时,角色就可以移动到你鼠标指针的位置。但是如果你的鼠标继续移动呢?大家知道,程序是按照时间轴顺序执行的,当一步执行完就会去执行下一步,直到程序结束。所以我们如何让角色持续跟着鼠标走呢?只能继续执行这个指令才行。如何持续让程序执行这个指令呢?这个小朋友之前就学过啦,用循环指令就可以实现了!

搞清楚了编程逻辑,脚本就容易多了。

Scratch第七讲:海底世界(一)

然后我们赶紧试试吧:

Scratch第七讲:海底世界(一)

我们真的实现了小鱼跟着鼠标到处跑的功能。但是很明显程序有些问题,为什么呢?当鼠标移动超过场景边界时,小鱼一半身子不见了。跑到场景外面了。虽然好像不是什么大问题,但是看着总让人不舒服。做编程的关键之一就是一定要注重细节,程序的好坏其中一个重要标准就是对细节的处理。

(好编程要点:注重细节,精益求精)

本讲座的第二个重点,角色碰到边框的处理:

在游戏里面,角色碰到边框如何处理是一个非常普遍和常见的现象,想想你自己玩过的各种游戏,飞机大战也好,跑酷也好,简直随时都会碰边框的。

我们希望小鱼碰到边缘就停下来,甚至转个身子。这个可以实现吗?可以!有一个指令块就叫碰到边缘就反弹,让我们来试试。

Scratch第七讲:海底世界(一)

搞定!来看看效果

Scratch第七讲:海底世界(一)

晕!碰到边缘是不出界了,但是小鱼碰到右边怎么颠倒了,太抓狂了!这是怎么回事?其实这里面有个小技巧,注意到角色左上角的蓝色小感叹号吗?请点开试试看。

Scratch第七讲:海底世界(一)

看见没?这里面有一些参数,其中有一项(旋转模式),这三个旋转分别是:第一个让角色发生旋转(这个翻转是根据角色的角度来旋转的,碰到左右边框则是围绕着纵轴旋转到对称位置,碰到上下边框围绕着横轴旋转到对称位置),第二个是让角色左右翻转(角色碰到左右边框时发生左右翻转,碰到上下边框时保持不变),第三个则是不管碰到哪个边框,角色的角度都保持不变。

那我们该选哪个呢?在这个游戏场景中肯定是第二个更合理。(如果是打飞机的游戏选哪个呢?小朋友想想看)

好了,游戏的第一步实现了,通过控制鼠标移动,我们可以变成小鱼在海里想去哪就去哪了,下一讲我们会增加新的角色啦

查看原文 >>
相关文章