Я работаю над клоном Flappy Bird. Я сталкиваюсь с ошибкой, когда мои наземные узлы исчезают, когда я переключаюсь из режима портрета в альбомный.Узлы исчезают из портрета в альбомный режим (Sprite Kit | Swift | Flappy Bird)
EDIT: Я основывая свой код от этого: https://github.com/fullstackio/FlappySwift
Как вы можете видеть, Кирби действует как дно земля, так что ясно, что узел там его просто не видно. Вот соответствующий код:
override func didMoveToView(view: SKView) {
...
backgroundScrollUpdate()
...
}
func backgroundScrollUpdate() {
...
let groundTexture = SKTexture(imageNamed: "Ground")
groundTexture.filteringMode = SKTextureFilteringMode.Nearest
let moveGroundDur = 0.02 * groundTexture.size().width*2
let moveGroundSprite = SKAction.moveByX(-groundTexture.size().width*2, y:0, duration:NSTimeInterval(moveGroundDur))
let resetGroundSprite = SKAction.moveByX(groundTexture.size().width*2, y:0, duration:0)
let moveGroundSpriteForever = SKAction.repeatActionForever(SKAction.sequence([moveGroundSprite, resetGroundSprite]))
// ground
for var i:CGFloat = 0; i < 2 + self.frame.size.width/(groundTexture.size().width*2); ++i {
let groundSprite = SKSpriteNode(texture: groundTexture)
groundSprite.setScale(2.0)
groundSprite.position = CGPointMake(i * groundSprite.size.width, groundSprite.size.height/2)
groundSprite.runAction(moveGroundSpriteForever)
moving!.addChild(groundSprite)
}
// ground physics
let dummyGround = SKNode()
dummyGround.position = CGPointMake(0, groundTexture.size().height)
dummyGround.physicsBody = SKPhysicsBody(rectangleOfSize: CGSizeMake(self.frame.size.width, groundTexture.size().height*2))
dummyGround.physicsBody?.dynamic = false
dummyGround.physicsBody?.categoryBitMask = worldCategory
self.addChild(dummyGround)
...
}
Заранее спасибо.
Спасибо за ваш ответ, я переключился все мои self.frame.size. * to self.view! .bounds. * и он загружает текстуры намного медленнее, и Кирби провалится сквозь землю. b/c это не загружено. Также в пейзаже это пока не отображается. Я что-то упускаю? – Mike
Исправлена ошибка с Kirby, проваливаясь с помощью self.view! .bounds.height вместо .width. Они переключаются на view.bounds. Однако в ландшафтном режиме земля еще не видна. – Mike
Вы не разместили код, который имеет отношение к вращению, и перемещает все компоненты в нужное место. Я бы посмотрел на код, устанавливающий положение кирби (средний слева на правый и нижний край) и сравнивая с кодом, который рисует землю. Это может быть связано и с неправильным взглядом. – LawfulEvil