Я играл с SpriteKit, потому что я хочу создать игру через год, но в последнее время я обнаружил некоторые удары по скорости в странной форме.iOS SpriteKit Координирует проблемы с источником
Так что это проблема.
Я создал обычный проект SpriteKit, и я изменил код по умолчанию. Я добавил SKNode размером 20,20 (квадрат) в положение 0,0 или CGPointZero.
Дело в том, что мое отображаемое разрешение 1024x768, и если я запускаю свое приложение в ландшафте, я не вижу своего квадрата в 0,0-точке, я могу видеть его, только если я установил Y-позицию на 100, например
myNode.position = CGPoint(x: 0, y: 100)
и если я бегу мое приложение в портретном режиме, ось Y, если фиксировано, то 0 будет на левом углу, но я не могу увидеть квадрат еще раз, если я не установить свою позицию X до 300, например
myNode.position = CGPoint(x: 300, y: 0)
Почему я не могу просто увидеть узел в позиции 0,0 независимо от того, какую ориентацию экрана я облицовка.
Здесь идет мой полный класс
import SpriteKit
class GameScene: SKScene {
let myNode = SKSpriteNode()
override func didMoveToView(view: SKView) {
myNode.size = CGSize(width: 20, height: 20)
myNode.position = CGPoint(x: 0, y: 0)
myNode.color = UIColor.blackColor()
myNode.anchorPoint = CGPointZero
myNode.physicsBody = SKPhysicsBody(rectangleOfSize: CGSize(width: 20.0, height: 20.0))
myNode.physicsBody?.affectedByGravity = false
myNode.physicsBody?.categoryBitMask = 1
myNode.physicsBody?.collisionBitMask = 0
myNode.zPosition = 1
addChild(myNode)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch in touches {
let moveToY = touch.locationInNode(self).y
myNode.runAction(SKAction.moveToY(moveToY, duration: 5))
}
}
override func update(currentTime: CFTimeInterval) {
//print("Position Y: \(self.myNode.position.y)")
}
}
Где вы ожидаете, что ваш узел будет? По умолчанию происхождение вашей сцены находится в левом нижнем углу. Это отличается от UIKit, где происхождение будет левым верхним. Но размеры вашей сцены скорее всего больше, чем у устройства, на котором вы тестируете. – beyowulf
Я бы ожидал увидеть его в левом нижнем углу. Как я могу установить размеры сцены в размере экрана, независимо от того, какое устройство я использую? Я тестировал на iPhone 6, iPhone 6 Plus e и проблема поддерживала –