萌新提问
-
1如何通过一场景中的某个按钮控制另一场景一文本的显隐。(本人尝试使用过全局事件表,即当按钮被点击时显示该文本,可当我切换到文本所在场景时,该文本仍不可见,求大佬解答)
2怎样保存游戏,即一文本初始不可见,当我利用事件令它显示后,重启游戏,该文本仍可见。
3怎样设计简易体力系统,即每隔一段时间令体力加一,当体力达到极限值,不再增加,每点击开始游戏,令体力减一,当体力小于一时,无法开始游戏。
ps:因本人刚接触这一块,对很多模块用处不了解,求大佬详解。
-
@星之幻灭
第1点的话,每个场景的事件表和实例都是独立的,所以如果你要通过A场景的按钮控制B场景的实例是否可见的话,是无法直接达成的,毕竟在A场景中B场景的实例压根不存在,但还是能通过间接的方式达成,例如在A场景按下按钮后,把某个全局变量的值从0设置为1,然后在B场景的场景开始时,判断这个全局变量是否为1,是的话,就把B场景的实例设置为显示。
第2点的话,可以研究一下本地存储组件(或者如果你的项目是单机项目,也可以研究一下系统的动作——保存、加载),简单来说就是需要你把某个文本是否显隐作为一个数据保存下来,重启游戏后去读取这个数据进行处理。
第3点的话,其实跟第2点的本地存储组件也有关联,这个“每隔一段时间”就相当于存下上一个体力回复的时刻点,然后不断通过当前的时刻点与保存的时刻点的差值是否大于你想要的时间长度,来判断时间是否达到体力+1的条件,这个也可以看看官方那个离线收益的教程,其实原理有点类似:https://www.bilibili.com/video/BV1x7411W748。体力达到极限不再增加倒是挺好实现的,判断当前值是否大于等于上限值来决定是否执行后续事件即可,包括点击开始游戏使体力-1,也只是需要一个全局变量来记录体力的当前值,根据这个变量的值来做各种分支处理即可。
-
@星之幻灭
1.全局事件表的原理其实类似于“把这些事件分别复制到每个场景”,所以切换到后续场景后,文本可见性会变成初始状态。解决方法可以用全局变量,然后下个场景开始时判断变量值,根据判断结果来切换显隐。
2.单机游戏的系统里有保存和读取的动作,可以将游戏快照存储下来以及恢复到快照点;进一步的话可以用本地储存组件将刚才的变量存储到本地,游戏每次开始时都读取一遍然后重设显隐。
3.可以用一个全局变量存储时间,时间可以通过时间组件的表达式来获取,每次打开游戏时先读取上次退出的时间,再跟现在的时间进行比较和计算,得出体力应该加多少;但是在线过程中怎么后台计时就不好说了,之后我去实验一下再回