绘制了几张公路的草图,本来是准备制作一个赛车类的游戏,但是没有找到现成的车辆的素材,倒是scratch自带两个俯视视角的人物,虽然公路还是那条公路,既然游戏的主角从汽车换成了人,游戏名干脆也就改叫跑酷游戏吧。
路线是在coreldraw里面绘制的,对公路的路线绘制的比较规则,路线的起始点或者居于正中,或者偏左(或偏右)100像素。这样设置是为了拼接两张地图时可以严丝合缝。
例如1号地图中点居于正中,如果后续拼接4,7,9号地图就可以实现无缝拼合。(当然也可以与自己的克隆体无缝衔接,但本实例并没有使用克隆体,而是将上述几张地图随机组合重复使用,所以就去掉了调用自己作为后续地图的选项,以避免某张图还没有走完,又被调用到屏幕上方,导致页面出现大块留白的现象)
实现随机拼接的原理如下,图中红色区域为屏幕实际显示区域,点击绿旗时将1号地图放置至屏幕上方,1号地图就位后抽取出能和自己无缝拼接的几张图片中的一张,将编号写入一个叫“next”的公共变量。角色开始移动后,地图统一向下移动,当0号地图到达底部制定位置时调用“next”公共变量,将后续的随机图片重新摆放至屏幕正上方,同时中止自身的工作,跑一旁待命。需要注意的是,在这个逻辑中,1号图片负责确定后续的地图,而0号图片才是负责调用的,其后的逻辑也是如此,确定公共变量值的与调用公共变量“next”的不是同一个角色。
next变量的随机值
可以适配某张图的组合并不多,但是这些图的编号是没有规律的,如何实现不规则编号的随机抽取,可以参考本博客的另一篇博文:
《Scratch如何输出自定义的随机数》