scratch编写游戏:火柴人避开防守投篮

网上有很多篮球类游戏,我们也编写了一个。游戏中有一个投篮手,一个防守者。投中一个球得一分。投篮手离篮筐越近,投篮准确率越高,但离篮筐越近,越可能碰到防守者,如碰到,游戏结束。下边是游戏的效果图。

游戏背景选择系统自带篮球场背景,如上图。有四个角色,投篮手、防守者、篮球和定位点。如下图。定位点在篮筐架子上,用来测量投篮时,篮球距离定位点多远。scratch编写游戏:火柴人避开防守投篮_第1张图片
下图是投篮手和防守者的造型,投篮手有7个黑色造型,防守者有2个黄色造型,多个造型是为了实现两者的动画功能。造型采用火柴人,这是因为火柴人造型容易找到,即使用scratch的造型编辑器自己画一个也不难,造型编辑器中矢量图的线段变形功能十分强大。为满足所有造型尺寸一致,首先画一个用线段组成的基础火柴人,然后用线段变形功能修改基础火柴人,设计出所有满足要求的火柴人。本游戏的造型是从一段视频中一帧一帧抠出来的。投篮手的前4个造型用来完成带球跑动的动画,注意,球也是造型的一部分,篮球角色仅当投篮时才会出现。投篮手的后3个造型用完成投篮动作动画。注意,第7个(最后一个)造型没有篮球,在适当时候,篮球角色要出现在该造型的两手之间,然后以两手之间为起点移动到篮筐,完成投篮。为此第7个造型的中心应在两手之间,当篮球角色执行移向投篮手的脚本时,两者中心重合,即篮球角色在投篮手的两手之间。
投篮手和防守者造型
投篮手脚本如下。投篮手是随着鼠标移动的,当按下空格键时投篮手投篮。在“重复执行”脚本中包括两部分脚本,其中第1部分脚本是“重复执行直到按下空格键”中的所有脚本,是投篮手带球随鼠标移动的脚本;余下为第2部分,是投篮脚本。先看第1部分脚本。虽然投篮手随鼠标移动,但鼠标可以移出篮球场,而投篮手不能,所以如果鼠标Y坐标大于10,出了篮球场,投篮手Y坐标就只能等于10。由于造型1到4是带球跑动的造型,如果造型号为5,要修改为1。第2部分是投篮脚本,首先,改为起跳姿势的造型5。然后是抱球跳起造型6,Y坐标增加20,然后改为造型7,Y坐标再增加20,投篮者到最高点,注意,造型7无球,广播投篮消息,通知篮球角色使自己移到造型7,以两手之间为起点移动到篮筐,完成投篮。然后,投篮者Y坐标两次减20,回到地上,等待空格键抬起,再一次执行第1部分程序,带球随鼠标移动。这里需注意,投篮者跳到最高的停留时间加上下降时间应不小于篮球角色移动篮球到篮筐直到最后消失时间,避免出现两个球的错误。
scratch编写游戏:火柴人避开防守投篮_第2张图片
在解释篮球角色脚本前,首先要解决的问题是那种情况投篮投中,那种情况投不中。网上投篮游戏投中规则五花八门。本游戏规则是:距离篮筐越远投篮越不准,在某一点投篮,那次投中,那次投不中无规律,或者说是随机的,但投中概率应是定值。设从投篮点到篮筐架距离为Y,其值为0到239,但50以内投篮是不可能的,一定会碰到防守者,所以Y取值范围是50-239。令X=(Y/40)取整数,使用随机数发生器产生1到X之间随机数。规定随机数为1,投中,其它随机数投不中。如点到篮筐架距离Y<80,X=1,表示在Y<80情况下投中率为100%;如120>Y>79,X=2,投中率为50%;如160>Y>119,X=3,投中率为33%;…如240>Y>199,X=5,投中率为20%。
篮球角色脚本如下。在接受到投篮消息脚本中,首先篮球角色移动到投篮手,作为投篮起点,并显示自己。其后是如果脚本,就是根据投篮起点到定位点距离,使用随机数发生器判断本次投篮是否投中,随机数为1,投中,否则不中。投中,加1分,球移到篮筐上边,然后从篮筐落下。否则之后,是投不中脚本,球移到篮板上,从篮筐旁边飞出。最后隐藏。注意和投篮手的投篮动作在时间上要衔接。
scratch编写游戏:火柴人避开防守投篮_第3张图片
最后是防守者的脚本如下。这段脚本比较简单,首先判断和投篮手距离,如小于100,移向投篮手去防守,如不小于,退回篮筐下。如将100变大,防守就比较紧,否则,则比较松。
scratch编写游戏:火柴人避开防守投篮_第4张图片
水平有限,不免有考虑不周之处,欢迎批评指正。

你可能感兴趣的:(scratch游戏编程)