Swift - 标签和 Sprite 位置对比

标签 swift sprite-kit

我对 Swift 相当陌生,但一路上我注意到一些奇怪的事情。如果我有一个 Sprite 和一个标签,并为它们每个输入完全相同的位置,它们都会有不同的视觉位置。我正在寻找有人解释这一点,以更好地理解 Swift。 这是输出:

screenshot

//
//  GameScene.swift
//  Test Game
//
//  Created by NioPullus on 9/7/15.
//  Copyright (c) 2015 Owen Vnek. All rights reserved.
//

import SpriteKit

class GameScene: SKScene {

    var testSprite: SKSpriteNode = SKSpriteNode(imageNamed:                           "Spaceship")
    var testLabel: UILabel = UILabel()

    func defineTestSprite(var #sprite: SKSpriteNode) -> SKSpriteNode {
        sprite.position.x = 100
        sprite.position.y = 100
        sprite.xScale = 0.3
        sprite.yScale = 0.3
        return sprite
    }

    func defineTestLabel(var #label: UILabel) -> UILabel {
        label = UILabel(frame: CGRect(x: 100, y: 100, width: 100, height: 100))
        label.text = "Test"
        return label
    }

    override func didMoveToView(view: SKView) {
        self.addChild(defineTestSprite(sprite: self.testSprite))
        self.view?.addSubview(defineTestLabel(label:self.testLabel))
    }

    override func touchesBegan(touches: Set<NSObject>, withEvent event:     UIEvent) {
        /* Called when a touch begins */

        for touch in (touches as! Set<UITouch>) {
            let location = touch.locationInNode(self)
        }
    }

    override func update(currentTime: CFTimeInterval) {
        /* Called before each frame is rendered */
    }
}

最佳答案

UIKit 和 SpriteKit 使用不同的坐标系,因此您不一定期望与 subview 具有相同 x/y 值的 Sprite 出现在相同的视觉位置。

您可以使用SKView方法convertPoint:toScene: (和 convertPoint:fromScene:)在这些坐标空间之间进行转换。

您可以找到有关SpriteKit坐标系的更多信息here ,以及 UIView 坐标系 here 。 (如您所见,它们非常不同。)

关于Swift - 标签和 Sprite 位置对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32446433/

相关文章:

swift - 如何展示广告并奖励玩家?

ios - SpriteKit 和 Swift,如果条件为真,则将平台设置为 nil 将不起作用

swift - 如何统一填充 SKShapeNode

iOS 高 rebase /绑定(bind)时间

ios - Facebook 框架已添加到项目中,但仍然显示 "No such module FBSDKCoreKit"等错误

ios - ReactiveCocoa subscribeNext 用于 Swift 中的 Optionals

ios - SKTextureAtlas:不止一个图集令人困惑

sprite-kit - Sprite 套件帧率在开始时下降并且仅下降一次

swift - SpriteKit : Move Whole Scene

Swift:如何在同一个 UITableViewController 中的唯一 UITableViewCells 之间传递数据