Я сделал рутину игры в Swift 4
.
GameScene.SKS настроен для разрешения 750x1334
.
Когда я тестирую, код продолжается iPad
и iPhone X
.
Например, когда SpriteNode
достигает "dirt boulder
", узел спрайта должен остановиться. Я решил это в коде, протестировав SKPhysicsContact
. Когда spriteNode
попадает в «dirt boulder
», SpriteNode
располагается как раз до «dirt boulder
» от направления, из которого пришел spriteNode
. Это происходит путем коррекции x и y координат узла спрайта.
Отлично работает на iPhone SE, 5, 6, 7 и 8. Однако на разных iPad и iPhone X код перемещается так, что когда SpriteNode
попадает в «грязный валун», SpriteNode
будет находиться на противоположной стороне от "dirt Boulder
" - поэтому код работает противоположно ...
В GameViewController.swift , я использовал этот код для настройки GameScene.sks для различных устройств:
if let view = self.view as! SKView? {
if let scene = SKScene (fileNamed: "GameScene") {
scene.scaleMode = .aspectfill
view.presentScene (scene)
}
}