gpt4 book ai didi

ios - 快速更新不同场景中的 Int 变量? SpriteKit

转载 作者:行者123 更新时间:2023-11-28 08:46:45 24 4
gpt4 key购买 nike

我正在尝试制作一款生存游戏,玩家必须在每个关卡中存活很长时间才能进入下一个关卡。但是,当我从一个级别转到另一个级别时,我无法弄清楚如何更新每个场景的分数。我了解如何添加和删除 subview ,但这不是问题所在。问题是在不同的场景中调用一个变量,并从新场景中更改该变量。我将在这里留下一些代码以供引用。提前谢谢你。

在 Level1.swift 中,

我声明分数变量:

var Score = Int()

然后我会在需要时添加到它,并将其表示为标签。

Score++


ScoreLabel.text = "\(Score)"

然后在 Level2.swift 中

我再次声明变量

var ScoreLabel = UILabel()

并在需要时添加它......但是,唯一发生的事情是出现一个新标签并与已经显示的分数标签重叠......

Score++


ScoreLabel.text = "\(Score)"

如何在 swift 中保持一个场景到另一个场景的运行分数?

1.这是我声明变量的地方,我只在这个场景中这样做

2.这是我声明换场景的地方,我还没有,但这是我计划改变每个场景的方式

3.这是我添加标签 subview 的地方,我在每个场景中都这样做

4.这是我添加到变量的地方,我在每个场景中都这样调用它

最佳答案

UILabel 不是您场景的一部分。它是容器 View 的一个元素。因此它总是可见的,超时你创建一个新的,它将显示在现有标签的顶部。

最简单的方法是使用全局变量。就放

var Score = Int()
var ScoreLabel = UILabel()

在类定义之外(并且只将它添加到容器 View 一次)。

另一种选择是使用 SKLabel 并将其添加到场景中。

这个堆栈溢出问题是关于一个不同的问题,但展示了如何使用 SKLabel 获取评分信息的示例: score label display value overwrites

关于ios - 快速更新不同场景中的 Int 变量? SpriteKit ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35123543/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com