为scratch跑酷游戏创建一个随机地图

绘制了几张公路的草图,本来是准备制作一个赛车类的游戏,但是没有找到现成的车辆的素材,倒是scratch自带两个俯视视角的人物,虽然公路还是那条公路,既然游戏的主角从汽车换成了人,游戏名干脆也就改叫跑酷游戏吧。

scratch_create_a_random_map_p1

路线是在coreldraw里面绘制的,对公路的路线绘制的比较规则,路线的起始点或者居于正中,或者偏左(或偏右)100像素。这样设置是为了拼接两张地图时可以严丝合缝。

scratch_create_a_random_map_p2

例如1号地图中点居于正中,如果后续拼接4,7,9号地图就可以实现无缝拼合。(当然也可以与自己的克隆体无缝衔接,但本实例并没有使用克隆体,而是将上述几张地图随机组合重复使用,所以就去掉了调用自己作为后续地图的选项,以避免某张图还没有走完,又被调用到屏幕上方,导致页面出现大块留白的现象)

scratch_create_a_random_map_p3

实现随机拼接的原理如下,图中红色区域为屏幕实际显示区域,点击绿旗时将1号地图放置至屏幕上方,1号地图就位后抽取出能和自己无缝拼接的几张图片中的一张,将编号写入一个叫“next”的公共变量。角色开始移动后,地图统一向下移动,当0号地图到达底部制定位置时调用“next”公共变量,将后续的随机图片重新摆放至屏幕正上方,同时中止自身的工作,跑一旁待命。需要注意的是,在这个逻辑中,1号图片负责确定后续的地图,而0号图片才是负责调用的,其后的逻辑也是如此,确定公共变量值的与调用公共变量“next”的不是同一个角色。

next变量的随机值

可以适配某张图的组合并不多,但是这些图的编号是没有规律的,如何实现不规则编号的随机抽取,可以参考本博客的另一篇博文:
《Scratch如何输出自定义的随机数》

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

scratch跑酷游戏实现人物的逐级加减速

2023-7-30 10:33:13

综合资讯

scratch如何实现角色的上下翻转

2023-7-30 10:33:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索