gpt4 book ai didi

ios - Xcode 7 Sprite Kit X坐标在iOS模拟器中偏离中心

转载 作者:行者123 更新时间:2023-11-28 21:38:38 25 4
gpt4 key购买 nike

我刚刚更新到 Xcode 7/Swift 2,我遇到了这个问题,iOS 模拟器中 SpriteKit 的 x 轴似乎偏离了中心。请有心人试一下验证一下,很简单。在 Xcode 7 中创建一个新的 SpriteKit 项目,并在 touchesBegan 方法中,将这段代码 print(location) 添加到 let location = touch.locationInNode( self) 在 GameScene.swift 文件中。

然后在 iOS 模拟器(任何设备,尽管我选择了 iPhone 4s)中运行它并在 View 中四处单击,同时观察输出结果。 Y 轴在底部为零,但 X 轴在左侧似乎约为 300,并随着向右移动而增加。我为此失去了理智!

整个 touchesBegan 方法如下所示:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/* Called when a touch begins */
for touch in touches {
let location = touch.locationInNode(self)
print(location) // <-- *** ADD THIS LINE ***

let sprite = SKSpriteNode(imageNamed:"Spaceship")
sprite.xScale = 0.5
sprite.yScale = 0.5
sprite.position = location
let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1)
sprite.runAction(SKAction.repeatActionForever(action))
self.addChild(sprite)
}
}

让我知道您是否可以重现它,以及它为什么会发生!

最佳答案

请在找到下一段代码后找到GameViewController.swift:

if let scene = GameScene(fileNamed:"GameScene") {
// Configure the view.
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true

/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true

/* Set the scale mode to scale to fit the window */
scene.scaleMode = .AspectFill

skView.presentScene(scene)
}

所以你必须添加:

 scene.size = UIScreen.mainScreen().bounds.size

行后:

scene.scaleMode = .AspectFill

这将解决您的问题。希望对你有帮助

关于ios - Xcode 7 Sprite Kit X坐标在iOS模拟器中偏离中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32959014/

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