添加事件

玩家根据触摸时长跳跃高度

首先我们需要新建一个全局变量命名为力量,双击进入变量编辑界面,变量类型设置为NUMBER,初始值设置为0。再新建一个全局变量命名为触摸状态,双击进入变量编辑界面,变量类型设置为STRING,初始值设置为没有触摸。

设置事件当触屏开始时并且全局变量触摸状态为“没有触摸”时,修改全局变量触摸状态为“开始触摸”。点击“+事件”按钮,添加一条新的事件。

在事件表上方选择触屏操作,双击“触屏开始时”条件。

选择事件表上方系统,双击“比较两值”,变量名选择触摸状态,比较方式选择等于,值设置“没有触摸”。因为系统中有两个比较两值条件,这里我们选的是全局变量与局部变量下的比较两值条件。

选择事件表上方系统,双击“设置值”动作,变量名选择触摸状态,值设置“开始触摸”。

设置事件当全局变量触摸状态为“开始触摸”时并且全局变量力量小于等于99,全局变量力量加1。

点击“+事件”按钮,添加一条新的事件。

选择事件表上方系统,双击“比较两值”条件,变量名选择触摸状态,比较方式选择等于,值设置“开始触摸”。

选择事件表上方系统,双击“比较两值”条件,变量名选择力量,比较方式选择小于等于,值设置99。

设置动作给全局变量力量加1。选择事件表上方系统,双击选择“加法运算”动作,变量名选择力量,值设置1。

设置事件当触屏结束时,修改全局变量触摸状态为“没有触摸”,设置玩家的平台跳跃起跳速度属性为全局变量力量*15,设置玩家的平台跳跃模拟控制为跳跃,修改全局变量力量的值重置为0。

点击“+事件”按钮,添加一条新的事件。

在事件表上方选择触屏操作,双击“触屏结束时”条件。

选择事件表上方系统,双击选择“设置值”动作,变量名选择触摸状态,值设置“没有触摸”。

舞台上选择玩家或对象库选择玩家,双击选择“设置当前速度”动作,启用垂直速度为力量*15。

舞台上选择玩家或对象库选择玩家,双击选择“模拟控制”动作,控制选择跳跃。

选择事件表上方系统,双击选择“设置值”动作,变量名选择力量,值设置0。


这时候我们预览看一下,当我们长按屏幕时越久时,玩家跳跃的高度就越高。

但是有一个问题,如果当玩家在空中时,我们在这个时候长按屏幕,当玩家一落地松开触摸,玩家也会马上起跳,这是不符合我们预期的,我们希望是当玩家在平台上的时候,才开始计算蓄力。所以我们需要在判断开始触摸的时候添加一个条件,当玩家在平台上时,才修改触摸状态为“开始触摸”

左键点击选中判断开始触摸的事件。

在舞台或对象库选择玩家,双击“某运动状态中”条件,选择“在平台时”。

这时候我们预览看一下,当我们在玩家在跳跃在空中时,长按屏幕,玩家落在平台上时松开,这时候玩家不会再次马上起跳了。

这样玩家根据长按屏幕的时间控制跳跃高度的效果就完成了,接下来我们制作向前跳的效果。

玩家跳跃时下方平台往左走

首先我们在舞台下多创建几个平台,H统一设置400,Y坐标统一设置1000.X和W随机设置。

我们希望实现的效果是,当玩家跳跃时,平台往左飞,当玩家着陆在平台上时平台运动就停止(即平台子弹速度设置为0)。

新增一条事件,设置当玩家跳跃时,设置平台子弹能力速度为500,设置运动方向向左即设置运动角度为180.

点击“+事件”按钮新增一条事件,在舞台或对象库选择玩家,双击“状态切换瞬间”条件,选择“跳起时”。


在舞台或对象库选择平台,双击选择“设置速度”,速度设置500.

在舞台或对象库选择平台,双击选择“设置运动方向”,方向设置180.

新增一条事件,设置当玩家着陆时,设置移动对象子弹能力速度为0.

点击“+事件”按钮新增一条事件,在舞台或对象库选择玩家,双击“状态切换瞬间”条件,选择“着陆时”。

在舞台或对象库选择平台,双击选择“设置速度”,速度设置0.

这时候我们预览看一下,当我们长按屏幕时蓄力开始,松开时玩家就会跳跃,当玩家跳跃时,移动对象开始往左飞带动平台往左飞,当玩家着陆平台时,移动对象暂停移动平台也跟着暂停移动。

这样最简单的跳一跳的游戏逻辑就做好了,但是当触摸屏幕时没有一个指示条,无法知道当前按下的力度是多少。请看下节,设置蓄力条~