第三课 格斗游戏系列课程之第一课

从本课开始,我们将开始完整制作一个2人格斗小游戏,并通过这个游戏的制作过程,进一步熟悉Scratch。

一、目标
1.实现键盘操作的即时响应,从而达到使用键盘控制角色做出不同动作
2.利用消息机制(消息的广播与接收),实现角色的不同动作。
3.让角色能够发出招式–半月斩
二、需求分析
1.使用键盘A和S,使角色前后移动
2.按键盘L键时,角色发出半月斩的招式
3.半月斩整个过程的呈现
三、程序设计
1.角色的前后移动与上一节课的企鹅移动实现方式相同。不过本课只有前后移动。上下将改为上跳和下蹲,下节课处理。
2.当按键盘键L时,角色发出技能半月斩的消息,并显示对应造型。
3.半月斩角色收到发招消息后,实现半月斩的出招,飞行,收势3个过程。
四、代码编写
1.前后移动:代码与迷宫代码类似,使用A键实现向后移动<–,使用D键实现向前移动–>。
第三课 格斗游戏系列课程之第一课
第三课 格斗游戏系列课程之第一课
代码详解:
1、首先使用判定语句判定当前是向前移动还是向后移动,并角色没有处于发出半月斩招式的僵直状态。
2、判定坐标范围在有效范围内
3、切换造型为行走。
4、变更X坐标的值,实现角色的前后行走。并记录行走后X坐标增加角色一步的变化值。
5、判定下一步角色的X坐标是否超出范围,如果超出,在设定为最大/最小值。
6、行走完毕,改变造型为侧站。

2.键盘键L响应和发出消息
第三课 格斗游戏系列课程之第一课
代码详解:
1、判断是否已经按下L键,并且角色未处于半月斩僵直状态
2、变更角色状态为造型,实现半月斩角色人物完整动作
3、广播半月斩,通知半月斩实现代码,实现半月斩过程。
4、将半月斩变量设为1,是的角色人物在发出半月斩过程中不能进行别的动作,叫做僵直。

3.半月斩实现,切换到半月角色,添加如下代码:
第三课 格斗游戏系列课程之第一课
代码详解:
1、红色的①对应上一段代码中的①,上一段代码为通知,此处为接收。
2、初始化半月角色位置
3、显示半月角色
4、克隆一个自己
5、将克隆的自己利用改变X坐标值,实现半月斩的过程展示
6、将半月斩的变量值设为0,表示半月斩结束,角色人物僵直结束。
7、发出半月斩结束的通知
8、删除此克隆体
9、接收到半月斩收势的通知,隐藏半月角色。
10、图中的数字为一一对应关系。

五、测试与调试
运行游戏,按照目标逐个测试。发现错误并改正。
六、重点知识
1.消息的广播与接收:编程时,为了能够让不同的角色同时对相同的指令进行响应,我们需要对指令进行广播,并让所有需要听从指令的角色接收该指令。并让每个不同的角色按照同一个指令,做出自己特有的动作。从而实现复杂编程。在相同时间段内,可以同时有多个消息在程序内传递,并由不同的角色接收并执行。
2、角色人物僵直:此为游戏中的专有名词,即角色在游戏过程中,做出某些动作时,为了增加游戏的趣味性和可玩性,使得角色在一定时间内不能做其它动作。叫做僵直。