极速赛车-Scratch赛车竞速游戏

极速赛车-Scratch赛车竞速游戏

极速赛车-51scratch
极速赛车-Scratch赛车竞速游戏
此内容为付费资源,请付费后查看
19.9
限时特惠
39.9
立即购买
您当前未登录!建议登陆后购买,可保存购买订单
付费资源

《极速赛车》是日本游戏制造商Sidhe公司根据2008年美国华纳兄弟公司制作的同名电影改编而来,玩家可以在游戏中使用电影中登场的全部角色以及他们的爱车,并且也将完美还原电影中赛车比赛的激烈场面。这是一款操作简便的街机赛车游戏,有多条赛道供玩家挑战,但是要在限定时间将赛车开到检查点取得获胜后,才可进入下一个赛道。

极速赛车
极速赛车

作品介绍

今天给大家分享的Scratch作品是《极速赛车》,这是一款竞速避障游戏。游戏的目标是控制好自己的赛车,避开迎面高速驶来的各种车辆,看看谁的分数更高。

点击绿旗,开启游戏。4条赛道上有各种各样的车辆迎面驶来,玩家要通过按下键盘的左右方向键来切换赛道,每顺利的躲开一辆来车,就增加1分,如果不小心撞上了,游戏结束,看看谁的分数更高,赶紧来挑战吧。

核心代码解读

本作品的素材并不多,舞台背景使用默认的背景即可,角色有4个,如图所示:

scratch极速赛车角色列表
scratch极速赛车角色列表

其中,来车角色有4个造型,用来表示不同的车辆。针对本作品,有两个细节需要注意,也是编程创作时的难点,分别是:

  • 如何精确的控制来车的出现位置
  • 怎么确保我的赛车不会开出赛道

1.精确控制来车的出现位置

和之前作品有所不同的是,通过克隆生成的来车位置并不是完全随机的,尽管有4条赛道,需要使用随机,但是针对每条赛道,其位置是固定的,要保证来车是在赛道的正中间出现,其坐标分别是(-90,180)、(-30,180)、(30,180)、(90,180)、其中y坐标是相同的,都是180。不同的是x坐标,分别是-90、-30、30和90,如何随机得到这4个值呢?

首先,必须明确的一点是,肯定要使用随机数指令,但是不能直接这么使用:

在-90和90之间取随机数
在-90和90之间取随机数

这么用,得到的随机数是-90到90之间的任意整数,因为随机数指令只能获取连续范围的数字,而-90、-30、30和90这4个数字并不是连续的,中间还隔着好多数字呢。

要想解决这个问题,可以有如下两个方法:

  • 使用列表
  • 借助数学数学运算

第一种方法是使用列表,将4个坐标数字保存到列表中,然后再使用随机数指令随机获取列表中的项目,创建列表如图:

x坐标值列表
x坐标值列表

然后使用获取列表项指令结合随机数指令,代码如图所示:

随机获取列表项内容
随机获取列表项内容

这样就可以随机获取列表中的x坐标值了。

第二种方法,是直接使用数学运算,由于-90、-30、30和90这四个数字有一定的规律,就是依次相隔60,因此我们可以利用乘法将连续的数字放大一定倍数,从而得到不连续的数字,比如针对1、2、3、4都放大60倍,于是就变成了60、120、180和240,然后再利用加减法可以任意调整初始数字,比如我们把这4个放大的数字分别减去150,就可以得到-90、-30、60和90,对应的代码如下:

借助数学运算随机获取x坐标值
借助数学运算随机获取x坐标值

很显然,这种方法更加简单,但是对数学知识的灵活运用有着更高的要求,所以说,编程和数学关系密切,相辅相成,学习编程可以提升数学思维,反之学习数学,可以让编程变得更加的优雅高效。

2.确保赛车不离开赛道

第二个需要注意的细节就是在使用左右方向键控制赛车的时候,赛车不能离开赛道跑到草坪上去,这个又该怎么实现呢?

每切换一条赛道,坐标相应的要增加/减少60步,如果不加以限制,那么赛车必然会跑到草坪上去的,因此,需要加一个限制条件,当赛车在最左边的赛道上时,再按下左键,就不做任何处理,关键是这里的条件是什么呢?

当左移的时候,x坐标在不断的减小,当切换到最左边的车道上时,x坐标的值为-90,此时就不能再往左移动了,所以,可以继续左移的条件就是 x坐标 > -90,所以,针对左移,对应的代码如下:

赛车左移代码
赛车左移代码

相应的,右移也可以使用相同的方法处理,代码如下:

赛车右移代码
赛车右移代码

作品效果

Scratch极速赛车作品的完整效果如视频所示:

Scratch极速赛车作品效果
© 版权声明
THE END
喜欢就支持一下吧
点赞7赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容