本篇教程将教大家如何实现简单的离线收益
点我下载教学工程
你可以观看视频学习,也可以下拉查看文字教程
离线收益的教程视频
本教程主要使用两个组件:时间组件以及本地储存组件。
通过本地储存组件获取数据需要一小段的时间,为了防止还未获得数据就正式开始游戏,我们将获取本地数据的场景与游戏主场景分开。
建立4个全局变量
时间组件勾选全局对象、使用当地时区
在【开始场景】中,当游戏开始时,从本地储存数据中获取金币、首次游戏、上次收益时间
如果是第一次游戏,本地储存中没有该条目,则不做任何处理,直接使用变量的默认值开始游戏。
如果获取到,将本地存储的值设置到对应的变量中。
在初始化工作完成后,点击按钮,进入收益场景。
新建按钮,拖入场景中,当按钮被按下时,跳转至【收益场景】
进入【收益场景】
当场景开始时判断,如果是第一次进行游戏,将上次收益时间设置为当前时间。因为变量的默认值是0,为了确保能够正确的计算当前时间和上次收益时间的时间差,需要手动进行一次设置。
同时将变量首次游戏设置为0,在更新变量后设置回本地储存中。
currentTimestamp获取的为从1900年到现在所经历的毫秒数。用当前时间减去上次收益时间,计算经过的秒数,如果大于1秒(本教程中每隔一秒进行一次收益),计算一次收益。
1秒等于1000毫秒,所以本教程中比较的是大于等于1000
建立子变量:local_相差时间,方便后续计算。
相差时间为当前时间减去收益时间。
根据相差时间计算获得的金币:int(local_相差时间/1000) * 每秒收益
在计算时,增加了向下取整的操作。如果相差1.5秒,只会计算1秒的收益。
更新上次收益时间。这里并没有直接赋值为当前时间,如果经过了9.5秒,只会在原来的时间上增加9秒的时间。
最后将更新的变量全部存储到本地
在正确写完上面的事件后,我们可以通过文本组件观察金币的变化。
预览可以看到,金币每隔一秒增长一次,当退出游戏等待一段时间重新进入后,金币会加上离线时间的收益。
用系统提供的每隔X秒的动作也可以实现一段时间进行一次收益,但是这种方式无法对离线时的收益进行处理,必须在多写一条专门针对离线时间的事件。 这种方式较为繁琐,不建议使用每隔X秒的方式实现挂机游戏的收益逻辑。