在高度为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]))
}
答案 0 :(得分:2)
基本上不同的苹果设备有不同的屏幕尺寸,这是您的问题所在。为了解决这个问题,相对于屏幕大小,怪物会产生这样的问题。
monster.position = CGPoint(x:self.view!.bounds.width / 1.1, y:self.view!.bounds.height/1.4)
显然,您可以将1.1和1.4值更改为您想要在屏幕上找到合适高度/宽度的任何值。
*请注意,您可能需要更改SKAction以与新的精灵定位重合