gpt4 book ai didi

Xcode Swift 将函数传递给 GameOver 场景

转载 作者:行者123 更新时间:2023-11-30 13:16:43 25 4
gpt4 key购买 nike

我的高分需要一些帮助。在我的 GameScene.swift 中,我设置了 Highscore 函数,但问题是我想在 GameOverScene.swift 中显示 Highscore。这是我在 GameScene.swift 中创建的内容:

func operateOnScore(score:NSInteger) {
if getBestScore() < GameScene.score {
setBestScore(GameScene.score)
}
}

func setBestScore(score:NSInteger){

let userDefaults = NSUserDefaults.standardUserDefaults()

userDefaults.setObject(score, forKey: "bestscore")

userDefaults.synchronize()
}

func getBestScore() -> NSInteger {
let userDefaults = NSUserDefaults.standardUserDefaults()
return userDefaults.objectForKey("bestscore")!.integerValue
}

如果我在 GameScene.swift 中显示它,效果会很好,但现在我想在 GameOverScene.swift 中显示我的高分。我在苹果的开发主页上找到了一些东西,但它不起作用。我还将这个结构设置为我的 GameScene.swift:

struct HS {
func Showbest() {

let bestFinalText = SKLabelNode(fontNamed: "04b_19")
bestFinalText.fontSize = 20
bestFinalText.zPosition = 120
bestFinalText.fontColor = UIColor.blackColor()
bestFinalText.position = CGPointMake( CGRectGetMidX( self.frame )+90,CGRectGetMidY( self.frame )-10)
bestFinalText.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Right
bestFinalText.text = NSString(format: "%d", self.getBestScore()) as String
self.addChild(bestFinalText)
}

}

有人知道如何将函数传递给 GameOverScene 吗?

最佳答案

您不需要创建一个结构体,只需创建一个名为“Utils.swift”的新文件,无需类声明:

Utils.swift(如您所见,没有类声明):

import UIKit
import SpriteKit

func getBestScore() -> NSInteger {
let userDefaults = NSUserDefaults.standardUserDefaults()
return userDefaults.objectForKey("bestscore")!.integerValue
}

func showBest()->SKLabelNode {
let bestFinalText = SKLabelNode(fontNamed: "04b_19")
bestFinalText.fontSize = 20
bestFinalText.zPosition = 120
bestFinalText.fontColor = UIColor.blackColor()
bestFinalText.horizontalAlignmentMode = SKLabelHorizontalAlignmentMode.Right
return bestFinalText
}

在 Swift 中,不需要导入类,因此只需在 GameOverScene.swift 中调用这些函数,例如:

let scoreLabel = showBest()
scoreLabel.text = "points are: \(getBestScore())"
scoreLabel.position = CGPointMake( CGRectGetMidX( self.frame )+90,CGRectGetMidY( self.frame )-10)
self.addChild(scoreLabel)

关于Xcode Swift 将函数传递给 GameOver 场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38149330/

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