今天我们继续开一个新坑,开发微信经典小游戏:跳一跳。这个游戏看着比王者荣耀简单很多,但是做起来反而会比较复杂。这是因为,相比于王者荣耀的正常逻辑,跳一跳里面有一个比较复杂的算法控制台阶的移动。废话不多说,赶紧开始做游戏吧!
像跳一跳这种经典的小游戏,github一般会有开源版本。因此,我们不用费力找图,直接在github搜索工程就可以找到所有跳一跳的图片资源了。阿达老师在这个工程中下载到了跳一跳图片和声音资源:https://github.com/wswei99/tiaoyitiao,顺便star一波。话说,github上有好多跳一跳的作弊器啊,从刷分到利用算法自动跳一跳不一而足。
跳一跳的角色和舞台比较简单,我们只需要设置舞台背景色、跳棋(不知道叫的对不对)、台阶即可。
咱们先让跳棋跳起来。在游戏中,按下空格积蓄力量,松开空格跳棋跳起来。3.1. 初始化游戏
在游戏开始时,游戏里的每个角色都会做相应的初始化动作。比如,跳棋会移动到舞台的中下方,并下落下来;台阶会初始化一个自己出来接住跳棋。因此,我们使用事件广播通知游戏里的各个角色完成自己的准备动作。3.2. 按空格积蓄力量
我们分析一下跳一跳游戏的每次起跳逻辑。一次跳棋跳跃的周期可以分为这样几个动作:1)等待用户按下空格键。2)在用户按下空格键后一直积蓄力量。3)用户抬起空格键后完成力量积蓄,开始起跳。4)跳跃完成后开始新的一轮跳跃。因此,我们新增一个新一轮跳跃周期事件,在收到这个事件后等待用户按下空格键并开始积蓄力量。3.3. 松开空格跳起来这个游戏的力量设计有个不合理的地方,如果游戏里小人是往下按的话,小人像弹簧一样只受到向上的弹跳力,只会跳高,不会跳远。我们就随他去了,认为游戏里会给到跳棋向上和向前两个力量。
这里起跳是一个比较复杂的逻辑。我们都知道,一个物体被推了一下会运动起来,但是会运动多块呢?这涉及到一个物理概念:a = f_m ,这个鬼公式是:加速度=力量_质量 的意思。想想也能理解,我们用同样的力量推自行车自行车就走起来了,推汽车汽车肯定不会动。
在现实世界中,物体收到重力的作用一直停留在地上。因此跳棋跳起来后收到重力的作用也会落下来。当跳棋落到地面上(y坐标小于地面坐标)后,我们判断跳棋有没有成功落到台阶上。3.4. 弹跳完成后进入下一次等待状态这个步骤我们放到完成台阶的后面,这样方便一些。
台阶的控制比较简单,在游戏开始时,只需要控制下台阶的初始位置并克隆出一个新台阶即可。
当跳棋成功的跳跃到了台阶上后,要加分并且移动台阶和跳棋到新的位置。
这里有一个需要特别注意的地方,我们需要知道当前台阶是左侧的还是右侧的。左侧的跳完后移动到舞台边缘并消失,右侧的移动到舞台左侧,并把自己设置为left。
垂直加速度 a = (x-g)m ;说人话:垂直加速度=(弹力-重力)跳棋质量
画线
让我们来看看这个跳棋的运行路线,我们可以发现。这是一个典型的抛物线,这个只是会在高中物理详细讲解,小朋友现在知道这个抛物线是怎么形成的了吗?
这个游戏的难点有两个, 1)跳棋的抛物线运动;2)台阶的相对移动。这两个点学会了,跳一跳开发起来就很简单了。阿达老师想开个坑,微信小游戏Top100 轮番做,不知道大家会不会喜欢,有其他建议也欢迎大家在留言区留言。喜欢这个系列的点击一下右下角的赞吧,支持阿达老师创作更多内容。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved