【发布时间】: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]))
}
【问题讨论】:
-
然后不要对位置进行硬编码。使其成为屏幕大小的函数。您可以通过 UIScreen.mainScreen().bounds.size 或通过场景中的
size属性(取决于场景的大小)来获取此信息。 -
设置它相对于屏幕的位置。例如,
self.view.frame.size.height - 100 -
与论坛网站不同,我们不使用“谢谢”、“感谢任何帮助”或Stack Overflow 上的签名。请参阅“Should 'Hi', 'thanks,' taglines, and salutations be removed from posts?.
标签: ios swift sprite-kit