2016-08-02 3 views
6

В предыдущей версии SpriteKit начало координат (0,0) всегда находилось в левом нижнем углу. Кроме того, Node добавлен к своему родителю, по умолчанию, начал там.Изменена ли система координат SpriteKit в Xcode 8?

Похоже, что начиная с Xcode 8 новое значение по умолчанию находится в центре экрана.

Это правильное поведение, ошибка в бета-версии, или я просто не понимаю SpriteKit?

тот же код используется как для

import SpriteKit 
import GameplayKit 

class GameScene: SKScene { 
    override func didMove(to view: SKView) { 
     let ship = SKSpriteNode(imageNamed: "Spaceship") 
     addChild(ship) 
    } 
} 

Xcode 7:

enter image description here

Xcode 8:

enter image description here

+1

Ну, это может быть так. Что говорит spirte.position, sprite.anchorPoint и scene.anchorPoint? – Whirlwind

+0

В Xcode 8 они читают - положение спрайта (0.0, 0.0), sprite anchorPoint (0.5, 0.5), scene anchorPoint (0.5, 0.5) –

+0

Это выглядит так, как должно (по крайней мере, так оно и есть в Xcode 7). – Whirlwind

ответ

6

Нет, SpriteKit все еще использует тот же система координат.

Разница в том, что файл .sks scene, который снабжен новым проектом, изменился. В более ранних версиях Xcode этот файл .sks имел свою опорную точку (т. Е. Где «происхождение» сцены находится) (0,0), что приводит к тому, что начало координат находится в нижнем левом углу.

В Xcode 8 файл .sks имеет опорную точку по умолчанию (0.5, 0.5), которая является центром сцены.

Чтобы вернуть прежнее поведение, просто зайдите в этот файл .sks и сбросьте опорную точку на (0,0). Любые старые файлы .sks, которые у вас есть, все равно должны работать, поскольку их опорные точки были установлены на (0,0) раньше.

+0

Спасибо @cc Я бы с удовольствием подтвердил это, к сожалению, последняя битка Xcode 8 сбой при каждом открытии файла .sks. Я обновлю, как только я смогу открыть его. –

+0

Да, это известная проблема, судя по всему, на форумах разработчиков Apple есть дискуссия по теме сбой редактора .sks. (Если вы вернетесь к бета-версии 3, вы можете увидеть вышеприведенное поведение.) –