gpt4 book ai didi

xcode - 更新来自不同类别的分数变量

转载 作者:行者123 更新时间:2023-11-28 07:06:29 26 4
gpt4 key购买 nike

我试图让我的分数在游戏结束后转移到新场景,当这种情况发生时,分数显示为 0。默认情况下,我的 PlayScene 中的分数设置为 0,但我需要当 PlayScene 结束时,它可以读取 ScoreScene 中的分数。请帮忙!!

import SpriteKit

import AVFoundation

class PlayScene: SKScene, SKPhysicsContactDelegate {

let scoreText = SKLabelNode(fontNamed: "System-Bold")
var score = 0

override func didMoveToView(view: SKView) {

self.scoreText.text = "0"
self.scoreText.fontSize = 42
self.scoreText.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMaxY(self.frame) / 1.075)


func didBeginContact(contact:SKPhysicsContact) {

var scene = ScoreScene(size: self.size)
let skView = self.view as SKView!
skView.ignoresSiblingOrder = true
scene.scaleMode = .ResizeFill

scene.size = skView.bounds.size
skView.presentScene(scene)

func blockRunner() {

for(block, blockStatus) in self.blockStatuses {
var thisBlock = self.childNodeWithName(block)
if blockStatus.shouldRunBlock() {
blockStatus.timeGapForNextRun = random()
blockStatus.currentInterval = 0
blockStatus.isRunning = true
}

if blockStatus.isRunning {
if thisBlock!.position.x > blockMaxX {
thisBlock!.position.x -= CGFloat(self.groundSpeed)

}else {
thisBlock!.position.x = self.origBlockPositionX
blockStatus.isRunning = false
self.score++
if ((self.score % 10) == 0) {
self.groundSpeed++
}
self.scoreText.text = String(self.score)

}
}else {
blockStatus.currentInterval++
}
}
}

现在,当游戏结束时,它会切换到下面的得分场景

     class ScoreScene: SKScene {
var playScene = PlayScene()
let scoreText = SKLabelNode(fontNamed: "System-Bold")

override func didMoveToView(view: SKView) {

self.scoreText.text = "score: \(playScene.score)"
self.scoreText.fontSize = 42
self.scoreText.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMaxY(self.frame) / 1.075)

最佳答案

您需要创建一个单独的模型来保存您的数据,以便您可以从应用程序的不同部分访问它,我通常使用单例方法,因此我可以只创建一次类并在需要时随时访问它的值。我会做什么:

  • 创建一个新类播放器,保存有关播放器的详细信息,例如
  • score 使这个类成为单例使用这个类来填充
  • 通过游戏的所有场景得分

有关 swift 中设计模式的更多详细信息 here (包括单例)

您会在here 中找到大量单例代码演示。

关于xcode - 更新来自不同类别的分数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30385323/

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