设置平台自动生成

我们先来看一下现在的舞台。我们看到我们预先设置了4个平台,前三个在场景中,第四个在场景外,所以我们可以设置一个事件逻辑,每当平台运动进入场景的时候,我们在当前进入场景的平台右方,创建一个新的平台,设置随机宽度。

首先我们在对象库选中平台对象上,新增一个实例变量,命名为创建,初始值0.在对象库选中平台 ,选择数值,点击新增实例变量按钮。

分别选中舞台中前三个平台对象,,修改实例变量初始值为1。

这样设置的目的是因为前三个的平台已经进入到场景之内了,所以不需要判断是否需要在右方创建新的平台。

现在我们就来设置事件来判断当场景外的平台进入到场景时,创建新的平台。点击“+事件”按钮,添加一条新事件,选中平台,双击选择“在场景外时”。

这时我们要点击条件上按钮,这个按钮作用是反转条件,即 当平台不在场景外时。也就是我们需要的平台从场景外进入到场景中时。

另外我们还需要判断这个平台进入场景内时,是否已经创建过新的平台了,如果没有创建过,则生成一个新的平台在场景右方。选择平台,双击选择“比较实例变量”条件,实例变量选择创建,比较方式选择等于,值设置0。

选择平台,双击选择“设置值”动作,实例变量选择创建,值设置1。

选择系统,双击选择“创建实例”动作,创建的实例对象选择平台,图层组设置“角色”,X坐标设置0,Y坐标设置1000。

选择平台,双击选择“设置尺寸”,宽度设置random(100,300),这个动作是生成100-300宽度大小的平台。

选择平台,双击选择“设置位置”动作,X设置 1920+平台.width+random(300,500).
这里设置新创建的平台X坐标是场景的宽度+新创建的平台的宽度+一个随机300-500的距离。

选择平台,双击选择“设置值”动作,实例变量选择创建,值设置0.

整个事件设置如下。

这时候我们在预览一下,可以看到平台可以无限从场景的右方创建。但我们还需要优化几个小点来完整我们这个跳一跳游戏。

设置平台移动到场景左方自动删除

当平台的X坐标小于-300时,销毁平台对象。这个事件目的是设置平台已经移动到场景的左边,我们就删除它,避免它占用资源。

设置玩家掉落到场景外重启游戏

当玩家的Y坐标大于1200时,重启场景。这个事件的目的是玩家如果跳起来没有跳到平台上,就会一直掉落,当玩家的Y坐标大于1200时,我们就应该重新启动游戏或者跳去失败场景。

设置玩家归位

因为我们设置了一个事件,当玩家着陆时,设置平台的子弹能力速度为0.但是因为系统有延后性,所以我们可以看到玩家着陆时会被平台往左移动了一点。所以我们需要设置一个事件当玩家的X坐标小于158(玩家初始的X坐标位置)并且玩家时跳起状态时,我们修改玩家的X坐标 回到初始值158。