gpt4 book ai didi

ios - SpriteKit世界定位错误

转载 作者:行者123 更新时间:2023-11-30 13:32:00 25 4
gpt4 key购买 nike

我正在尝试使用 SpriteKit 和 Swift 制作我的第一个游戏。我想我理解了 World SKNode 的概念,但我无法让它正常工作。

我将 world:SKNode 添加为 GameScene 的子项。然后我添加 9 个子 SKSpriteNode(从 200px X 200px 点开始 400px X 400px,因为 spritesNode 居中)。它们位置完美,但我不知道如何获得我的世界 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 */
}
}

但是我通过运行这段代码得到的是,它在垂直方向上的位置完美,但世界的左侧位于屏幕之外的某个地方。

enter image description here

最佳答案

哦,这很简单。我需要添加这个

scene.size = self.view.frame.size

在 GameViewController.swift 的 viewDidLoad 中像这样

class GameViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

if let scene = GameScene(fileNamed:"GameScene") {
// Configure the view.
let skView = self.view as! SKView
skView.showsFPS = true
skView.showsNodeCount = true

/* Sprite Kit applies additional optimizations to improve rendering performance */
skView.ignoresSiblingOrder = true

/* Set the scale mode to scale to fit the window */
scene.scaleMode = .AspectFill
scene.size = self.view.frame.size //<---HERE
skView.presentScene(scene)
}
}

//...etc.

关于ios - SpriteKit世界定位错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36475904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com