在屏幕外生成
Spawn outside screen
在 y 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]))
}
基本上不同的苹果设备有不同的屏幕尺寸,这就是您的问题所在。为了解决这个问题,怪物生成相对于屏幕大小,就像这样。
monster.position = CGPoint(x:self.view!.bounds.width / 1.1, y:self.view!.bounds.height/1.4)
显然,您可以将 1.1 和 1.4 的值更改为任何您想要在屏幕上找到好的 height/width。
*请注意,您可能还需要更改 SKAction 以符合您的新精灵定位
在 y 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]))
}
基本上不同的苹果设备有不同的屏幕尺寸,这就是您的问题所在。为了解决这个问题,怪物生成相对于屏幕大小,就像这样。
monster.position = CGPoint(x:self.view!.bounds.width / 1.1, y:self.view!.bounds.height/1.4)
显然,您可以将 1.1 和 1.4 的值更改为任何您想要在屏幕上找到好的 height/width。
*请注意,您可能还需要更改 SKAction 以符合您的新精灵定位