创客教育探索
我们一直在努力!

温州实验中学scratch教案[游戏篇]9.《万圣节的礼物》-链表&随机座标定位&多键控制

范例:

http://scratch.mit.edu/projects/Daixiaohong/2861490(基础)《礼物降落》

http://scratch.mit.edu/projects/Daixiaohong/2862150 (进阶)《抓取礼物》

http://scratch.mit.edu/projects/Daixiaohong/2864579(提高)《背包惊喜》

http://scratch.mit.edu/projects/Daixiaohong/2868431 (完整)《万圣节的礼物》 范例截图:

2

q1

4

3
问题描述:

1)礼物在画面上方水平位置上随机出现,降落至地板后粉碎;

2)手由键盘方向键向左向右键控制左、右移动,空格键配合抓取降落的礼物,如果遇到忽明忽暗的南瓜灯时,游戏结束;

3)屏幕出现模拟的“背包”,里面记录抓取的礼物名称和数量;

4)形成完整的小型简易游戏,具备1)2)3)的功能,并有游戏开始及游戏结束的画面。

问题分析:

1).《礼物降落》。present有两种外观状态,完好和破损。从外部导入角色present和cake,并复制并编辑出破损的造型。

5 6 7 8 9

2)画面中的礼物随机出现。角色的位置由XY座标值确定,如果将角色的座标值定位成一个随机数,即能保证角色的每一次出现位置不确定。如将角色present和cake的Y值确定在153,X值确定在屏幕的左右两端的范围内,如-211<X<116。礼物在屏幕上Y轴153高度处,X轴的-211至116之间随机出现。

3)礼物从高处降落至地板。角色的位值Y值决定它在屏幕上Y轴的高度,改变角色的座标值中的Y值,造成视觉从高到低的降落,即Y值通过逐渐减少直至落至地板中的某个Y值。

10 11 12 13

4)礼物跌至地板,破损。一旦角色的Y值达到一个值,更换成损坏的造型。视觉上形成摔坏的样子。
问题分析:

2)《抓取礼物》。当礼物降落时,用鼠标控制角色hand碰到礼物且键盘空格键同时按下,礼物被抓取(隐藏),并复原为原状从(X,153)处出现并再一次降落。在《礼物降落》的基础进行改进,为角色present添加以下脚本。

14

角色hand被鼠标控制左右移动,类似于基础例子3《向左向右》,不同的是,改变hand座标X值,使它在某个水平线左右移动。

15 16

当空格键按下,角色hand的造型改变为一张一合。角色pumpkin的作用是制止hand,并形成停止游戏的事件。它从出现及降落,和礼物降落是一样的。它的造型有三个,明灯、弱灯、暗灯。针对它的脚本有:忽明忽暗的动画,向各个角色发出停止游戏的讯息。

17
问题求解:《抓取礼物》hand和pumpkin脚本截图:
问题分析:

18 19

3).《背包惊喜》。在《切水果》范例中,运用变量来记录数量。《抓取礼物》中涉及到多个计数。不但要记录下接到礼物的名称,还需要计数该礼物的数量。这时,用链表来模拟放置礼物的“背包”再合适不过。链表在Scratch中非常形象,是一列排成队的小“房间”,在“房间”里放入需要保存的数据。新建两个链表Bag和Scroe,给它们分别新建两个长度(这里暂时不涉及动态链表)。

20 21 22 23
为角度present和cake的脚本添加以下,当它们被角色hand抓取时,更改链表Bag第1项第2项,链表scroe的第1、2项则替换为抓取到的数量。

24 25 26 27

间”,在“房间”里放入需要保存的数据。新建两个链表Bag和Scroe,给它们分别新建两个长度(这里暂时不涉及动态链表)。
为角度present和cake的脚本添加以下,当它们被角色hand抓取时,更改链表Bag第1项第2项,链表scroe的第1、2项则替换为抓取到的数量。

《背包惊喜》脚本截图:角色cake的脚本修改为:
角色present的脚本修改为:

28 29
*问题分析:4)《万圣节的礼物》在《背包惊喜》的基础上进行完善。巩固“广播”的调用功能,添加游戏开始和游戏结束的画面,并在整个广播调用过程中,充分运用“隐藏”“显示”“移至最上层”等的调度作用,制作出一个有开始有结束完整的简易小游戏。具体过程不再详述,给出部分脚本画面,作为参考。

30 31
思考:1)挑战:如何在游戏结束后给出Scroe sheet?(读出两位数即可)

未经允许不得转载:创客探索 » 温州实验中学scratch教案[游戏篇]9.《万圣节的礼物》-链表&随机座标定位&多键控制

分享到:更多 ()