最近Switch的《节奏天国:奇迹之星》上市了,从GBA、Wii、3DS再到现在的NS,节奏天国系列陪伴了整整两代人,多少玩家为了打出完美节拍苦练技巧。
笔者近期将用Scratch复刻里面几款好玩的小游戏。从0开始,记录心得,分享开发体验,让同学们更好地了解一款游戏神作是如何诞生的。本篇为星空漫步系列的第一篇,带大家看一下这款游戏的玩法以及项目初始化时要做哪些工作。话不多说,直接进入主题。
玩法:
根据背景音乐的节拍,在关键时机按下按钮控制人物跳动,如果打在拍子上,会出现有趣的动画效果。见下方动图:

开发思路:
首先这是一款2D小游戏,采用了固定人物视角+横轴物品滚动+横轴背景滚动,类似flappy birds的动效。
对于这种人物横轴运动的游戏,可以参考横版过关游戏的做法,主要思路有两种:
1. 主角固定不动,让背景和场景物体朝着左侧的视差移动,这样看上去人物就是向右运动了
2. 在游戏代码中置入摄像头的概念,把摄像头的坐标绑定在人物身上,人物移动时,场景其他物体会计算和摄像头的相对位置。这样看上去和1的效果一致,但是代码逻辑更加符合直觉,并且处理碰撞等事件不会有问题。只不过这个摄像头的代码开发起来相对复杂。
对于这款音乐节拍类游戏,没有复杂的碰撞,选择1的处理方式就行了。
这里也提醒一下各位同学,不是越复杂的代码越好,开发前的准备工作有一大部分时间是在选型和取舍。真正的架构师会选择性价比最高的方案,而不是看上去最厉害的方案。
素材准备:
要复刻完整的游戏,素材很关键。很多小朋友可能有很好的开发思路,但是缺少可用的素材,很难完成一个完整的项目。
这里笔者在资源准备时花了不少功夫,不过最终得到了完整的sprite图片,这里我们来看看老任的素材长啥样吧!

以上就是一张完整的sprite图,也称为雪碧图。但是这种图片对Scratch不太友好,所以要进行切分,于是我们就得到了一大堆独立的图片文件:

然后根据Scratch的方式,按Sprite导入成造型就行了:

架构开发:
贯穿音乐游戏整体的是一个状态机,把游戏的状态转换梳理清楚了,游戏架构也会变得简单不少。
首先我们需要设置一个stage的全局变量,用来指示当前游戏处于什么状态:
stage为0,代表游戏刚开始
stage为1,代表游戏失败
stage为2,代表人物到达终点成功
然后再是人物状态,物品状态,分别进行设置,就能实现完整的游戏状态转换。
结语:
因为本篇是系列教程的第一篇,所以不涉及具体的代码实现,敬请期待后续更新,感谢您的阅读!

关注我们公众号,获取最新少儿编程资讯

讨论交流 (0)
暂无讨论,快来留下你的足迹吧