【问题标题】:Spawn outside screen在屏幕外生成
【发布时间】:2015-05-25 18:16:42
【问题描述】:

Mam 怪物在 y 500 的高度生成,这在测试 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]))
}

【问题讨论】:

标签: ios swift sprite-kit


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多