繁体   English   中英

从另一个类访问int

Accessing ints from another class

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有另一个观点可以处理上届会议以及排行榜的得分。 如何从GameOver类的GameScene类访问分数int?

在不花力气的情况下,我试图通过以下方法找到自己的方法:

class GameOver: SKScene {

let score = GameScene().score

init(size: CGSize, won:Bool) {

    super.init(size: size)

    backgroundColor = SKColor.whiteColor()

    var message = "\(score)"

    println(score)

    let label = SKLabelNode(fontNamed: "AvenirNextCondensed-Heavy")
    label.text = message
    label.fontSize = 40
    label.fontColor = SKColor.blackColor()
    label.position = CGPoint(x: size.width/2, y: size.height/2)
    addChild(label)
}

我以为,如果我在GameScene中为分数创建了一个变量,它将起作用,但是它确实使用了等于0的分数变量。那么当玩家死于上面的场景时,我该如何转移分数呢?

class GameScene: SKScene, SKPhysicsContactDelegate {

struct PhysicsCategory {
    static let None: UInt32 = 0
    static let All: UInt32 = UInt32.max
    static let Enemy: UInt32 = 0b1
    static let Player: UInt32 = 0b10
}

let player = SKSpriteNode(imageNamed: "Player")
var playerAlive: Bool = true

var touched:Bool = false
var location = CGPointMake(0, 0)

var difficulty = 1.0

var timer: NSTimer!
var scoreTimer: NSTimer!
var lastAddedTime : CFTimeInterval = 0

var score: Int = 0
var scoreLabel: SKLabelNode!


override func didMoveToView(view: SKView) {
    backgroundColor = SKColor.whiteColor()

    player.position = CGPoint(x: size.width * 0.5, y: size.height * 0.25)
    player.physicsBody = SKPhysicsBody(circleOfRadius: player.size.width/2)
    player.physicsBody?.dynamic = true
    player.physicsBody?.categoryBitMask = PhysicsCategory.Player
    player.physicsBody?.contactTestBitMask = PhysicsCategory.Enemy
    player.physicsBody?.collisionBitMask = PhysicsCategory.None
    player.physicsBody?.usesPreciseCollisionDetection = true
    addChild(player)

    physicsWorld.gravity = CGVectorMake(0, 0)
    physicsWorld.contactDelegate = self

    var timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "increaseDifficulty", userInfo: nil, repeats: true)

    var scoreTimer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "addScore", userInfo: nil, repeats: true)

    scoreLabel = SKLabelNode(fontNamed: "AvenirNextCondensed-Heavy")
    scoreLabel.text = "\(score)"
    scoreLabel.fontColor = SKColor.blackColor()
    scoreLabel.fontSize = 40
    scoreLabel.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame) + self.frame.size.height * 0.4)
    addChild(scoreLabel)

}

func addScore() {
    score += 1
    println(score)
}
2 个回复

我认为您需要将score变量声明为类级别的变量,但是Swift并不直接支持它,因此将score var包装在struct中,如下所示:

private struct ScoreStruct { 
  static var score: Int = 0 
}

class var staticScore: Int {
   get { return ScoreStruct.score }
   set { ScoreStruct.score = newValue }
}

您可以像这样使用它: GameScene.staticScore

GameScene是一个类。 在哪里实例化? 在您的项目中搜索“ presentScene:”一词,应该有一些类似的语言

let myGameScene = GameScene()
skView.presentScene(myGameScene)

此外,您的项目中必须有一个包含以下代码的地方。 添加带有注释的行

let myGameOver = GameOverScene()
if(conditionIsMet)
{
    myGameOver.passScore(myGameScene.score) //add this line
    skView.presentScene(myGameOver)
}
1 我怎样才能得到从另一个类返回的整数?

我在计算机数学课程中有一个项目,我们需要输入 3 个系数 (ax^2 + bx + c) 并使用二次公式计算零。 这对我们来说不会太难,但我们必须将工作拆分为不同的资源类和驱动程序类。 大纲: https : //imgur.com/a/0Mn3m 到目前为止,这是我迄今为止所拥有的 第二类 ...

2 从另一个类访问列表

我正在开发音频播放器。 我有一个名为HomeFragment的片段,它显示了歌曲列表。 当我按下其中一首歌曲时,会打开一个名为SongDetailActivity的活动,其中有一个名为play_fab的播放按钮。 当我按下这个播放按钮时,我想创建一个通知。 我在DataSource.java 中有 ...

3 从另一个类访问Vector

我有两个班,分别是学生班和学科班 和 我正在尝试使用名为getSub() getter方法在用户输入的所有主题中执行Homeworks和考试标记的加法,它们存储在sub Vector 。 我的问题是在此循环中(也在类似的examinationAverage()方法中 ...

4 从另一个班级访问信息

目前,我有这个班级,这是一个基本的工资报告: 在第二堂课中,我按下一个按钮,它为工资单课分配值: 现在,我想在按下按钮时在第三类的jTextFeild中显示PayrollReports toString()。 在花了几个小时之后,我所做的就是让jTextFeild显示空行。 ...

5 从另一个类访问 UITextView

我目前有两个视图控制器 A 和 B,A 使用 segue 来推动 B,这可以很好地来回工作,但是基于视图控制器 B 中的某些按钮按下,我想更改控制器 A 中 UITextView 中的文本。 我看过以前的帖子,但目前我是新手,对我应该如何做这件事感到困惑。 我很想知道如何最好地在应用程序的各个部 ...

6 从另一个类访问ArrayList

我在从另一个类访问ArrayList时遇到麻烦。 我正在跟踪过去的示例和互联网示例,但似乎无法使其正常工作。 为了更全面,我张贴了3个班级。 错误在我的QuestionView.java类中。 我在错误代码中记录了错误消息的位置和含义。 我的代码的任何其他部分的任何其他建议,不 ...

7 从另一个类访问变量

我正在尝试使用另一类中的一个类的变量,但出现错误“ run()缺少1个必需的位置参数:'MyWindowClass'” 我尝试使变量成为全局变量(在同一文件中的两个类外部声明),但是在一个类中更新变量值,另一类仍然看到原始值) 可能是什么问题? ...

8 从另一个类访问方法

我是C语言目标的新手,遇到很多困难。 希望你能帮到我。 好的,我有一个视图控制器类,该类显示来自插入到iphone的外部传感器的数据。 我还有另一个数据库类,应该捕获该数据并将其存储在可用于绘制图形的数组中。 我在寻找一种方法来捕获由视图控制器类方法变量捕获的数据并将其存储在数据 ...

9 从另一个类访问组件

我是java的新手。 我有一个班级,我正在创建gui和另一个类(主类),我正在访问gui类。 在gui类中,我正在创建一些组件并返回它们。 贵班, 主要班级, 至于它的工作正常。 在主类中有一个JTextArea,每当我打开一个文件,我必须在cbo1中显示国家 ...

10 从另一个类访问变量

很简单的问题,但我做不到。 我有3个班级: DrawCircle类 DrawFrame类 CircMain类 一个类创建一个框架,另一个类绘制一个圆圈并用较小的圆圈填充它。 在DrawFrame我设置了宽度和高度。 在DrawCircle我需要访问DrawFrame的宽度和高度。 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM