不确定如何标题,但我需要计算一名玩家在死亡之前杀死了多少敌人并为我的点和卫生系统重生。
我的想法是设置一个变量,在每次碰撞时添加1,然后当玩家被杀死时,它会获取存储分数变量的数量,并将其用于点和我的健康系统,这是在屏幕上向上移动一些东西。
一些超伪代码看起来像:
var storedPlayerScore = 0
var HealthPlus = SKAction.moveBy(CGVectorMake(0, (10 * storedPlayerScore)), duration: 0.05)
我已经在我的Gamescene中定义了这两个。
然后在我的didbegincontact中,只要两个正确的对象发生碰撞,我就会像storedplayerscore ++那样做。
所以在我确定健康状况有效之前,我在存储变量的位置有一个数字,但是当我使用它时它给了我“Gamescene.type没有名为storedPlayerScore的变量”< / p>
我在这里走在正确的轨道上吗?如何清除我得到的错误?
答案 0 :(得分:2)
您正在尝试访问类型本身而不是该类型的实例。
class GameScene {
var storedPlayerScore: Int = 0
}
var score1 = GameScene.storedPlayerScore // Error
let myGameScene = GameScene()
var score2 = myGameScene.storedPlayerScore // Works
这种混淆可能是由您为变量选择的名称引起的。在上面的代码中,您有一个名为HealthPlus
的变量,该变量以大写首字母命名。这使它看起来像一个类型而不是一个实例。变量名的约定以小写字母开头,而类型声明以大写字母开头。所以它应该是healthPlus
。