【发布时间】:2016-04-07 12:15:52
【问题描述】:
我正在尝试使用 SpriteKit 和 Swift 制作我的第一款游戏。我想我理解了 World SKNode 的概念,但我无法让它正常工作。
我将 world:SKNode 作为一个孩子添加到 GameScene。然后我添加 9 个子 SKSpriteNodes(从 200px X 200px 点开始为 400px X 400px,因为 spritesNodes 居中)。他们定位完美,但我不知道如何获得我的世界 SKNode 的界限。
例如,如何显示我的世界的左下角?
import SpriteKit
class GameScene: SKScene {
let cityPartSide:Int = 400
let startCoord:Int = 200
var world:SKNode = SKNode()
override func didMoveToView(view: SKView) {
//self.world = SKNode()
self.world.name = "world"
self.addChild(self.world)
let map:[[UInt8]] = [[16, 16, 16],
[16, 16, 16],
[16, 16, 16]]
drawMap(world, map: map)
}
func drawMap(world:SKNode, map:[[UInt8]]) {
let lineSize:Int = map[0].count
var lineCounter = map.count
while lineCounter > 0 {
lineCounter -= 1
var elemCounter = 0
while elemCounter < lineSize {
var sprite:SKSpriteNode = SKSpriteNode()
let currentPartNumb = map[lineCounter][elemCounter]
if currentPartNumb == 0 {
elemCounter += 1
continue
} else {
sprite = SKSpriteNode(imageNamed: "cell")
}
//CHOOSE IMAGE
sprite.position = CGPoint(x: startCoord + elemCounter * cityPartSide, y: startCoord + ((lineSize-1)-lineCounter)*cityPartSide)
world.addChild(sprite)
elemCounter += 1
}
}
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
但我通过运行这段代码得到的是它在垂直方向上的位置非常完美,但世界的左侧在屏幕之外的某个地方。
【问题讨论】:
-
在我看来您没有正确处理 scalingFactors,您是如何创建场景本身的?你用的是什么 scaleMode?span>
标签: ios swift sprite-kit sknode