Ich habe mit SpriteKit herum gespielt, weil ich ein Spiel in einem Jahr erstellen will, aber ich habe in letzter Zeit einige Geschwindigkeitsbumps in einer seltsamen Form gefangen.iOS SpriteKit Koordinaten Probleme mit Ursprung
Das ist also das Problem.
Ich habe ein reguläres SpriteKit-Projekt erstellt und einige Standardcodes geändert. Ich habe einen SKNode mit der Größe 20,20 (Quadrat) zur Position 0,0 oder CGPointZero hinzugefügt.
Das Ding ist, meine angezeigte Entschließung ist 1024x768 und wenn ich meine APP in der Landschaft laufen lasse, kann ich mein Quadrat im 0,0 Punkt nicht sehen, ich kann es nur sehen, wenn ich die Y-Position auf 100 setze
myNode.position = CGPoint(x: 0, y: 100)
und wenn ich meine app im Portrait-Modus laufen, die Y-Achse, wenn festgelegt, wird die 0 auf der linken Ecke, aber ich kann den Platz wieder einmal nicht sehen, es sei denn, ich meine X-Position gesetzt bis 300 wie
myNode.position = CGPoint(x: 300, y: 0)
Warum nicht einfach kann ich den Knoten auf der 0,0-Position sehen, egal welche Bildschirmausrichtung ich bin zugewandt.
geht hier meine volle Klasse
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)")
}
}
Wo erwartet Sie Ihr Knoten? Standardmäßig befindet sich der Ursprung Ihrer Szene in der unteren linken Ecke. Dies unterscheidet sich von UIKit, wo der Ursprung die obere linke Ecke wäre. Aber auch die Dimensionen Ihrer Szene sind wahrscheinlich größer als das Gerät, auf dem Sie testen. – beyowulf
Ich würde erwarten, so sehen Sie es in der unteren linken Ecke. Wie kann ich die Szenenmaße auf die Größe des Bildschirms einstellen, egal welches Gerät ich verwende? Ich habe auf iPhone 6 getestet, iPhone 6 Plus e und das Problem erhalten –