在屏幕外面产卵

时间:2015-05-25 18:16:43

标签: ios swift sprite-kit

在高度为500的情况下产生的Mam怪物在iPhone 6的测试时很好。但是当测试iPhone 5和iPhone 4时,这个怪物会在屏幕上产生。如何解决它在所有尺寸的屏幕上具有相同的位置?

这是我的代码:

func addMonster() {

let monster = SKSpriteNode(imageNamed: "monster")
    monster.physicsBody = SKPhysicsBody(rectangleOfSize: monster.size)
    monster.physicsBody?.dynamic = true
    monster.physicsBody?.categoryBitMask = PhysicsCategory.monster
    monster.physicsBody?.contactTestBitMask = PhysicsCategory.naboj
    monster.physicsBody?.collisionBitMask = PhysicsCategory.None
    monster.position = CGPoint(x: 600 , y: 500)
    addChild(monster)

    let actionMove = SKAction.moveTo(CGPoint(x: monster.size.width/2, y: 500), duration: NSTimeInterval(1.6))
    let actionMoveDone = SKAction.removeFromParent()

    let loseAction = SKAction.runBlock() {
        let gameOverScene = GameOverScene(size:self.size)
        let reveal = SKTransition.crossFadeWithDuration(0.5)
       self.view?.presentScene(gameOverScene, transition: reveal)
    }
   monster.runAction(SKAction.sequence([actionMove, loseAction, actionMoveDone]))
}

1 个答案:

答案 0 :(得分:2)

基本上不同的苹果设备有不同的屏幕尺寸,这是您的问题所在。为了解决这个问题,相对于屏幕大小,怪物会产生这样的问题。

monster.position = CGPoint(x:self.view!.bounds.width / 1.1, y:self.view!.bounds.height/1.4)

显然,您可以将1.1和1.4值更改为您想要在屏幕上找到合适高度/宽度的任何值。

*请注意,您可能需要更改SKAction以与新的精灵定位重合