gpt4 book ai didi

swift - 多个 Sprite 节点,仅出现一个

转载 作者:行者123 更新时间:2023-11-30 11:42:58 24 4
gpt4 key购买 nike

1输出图像位于此处

我对快速编码很陌生,并且代码“有效”,因为在这种情况下,其中一个 Sprite 将出现在“播放按钮”中,但我根本无法让地面出现。

我不知道这是否只是因为我采取了错误的方法或使用了错误的方法,但经过一番研究后我仍然陷入困境,所以我向你们求助。

我已经包含了下面的代码(我已经包含了整个文档,但关键区域将是 didMove to view 部分,我包含了其余部分,因为它可能是相关的)。正如我所说,其中一个 Sprite 确实出现,但另一个没有出现(无论我如何更改值)。

任何帮助将不胜感激。

public class GameScene: SKScene {

let background = UIImage(named: "Sky")
let playButton = SKSpriteNode(imageNamed: "Play Button")
let ground = SKSpriteNode(imageNamed: "Ground")
let groundPoint = CGPoint(x: 0, y:2)

override public func didMove(to view: SKView) {

self.playButton.position = CGPoint(x: 1, y: 2)
self.ground.position = CGPoint(x: self.frame.width / 2, y: self.frame.height / 3)

self.addChild(playButton)
self.addChild(ground)

self.backgroundColor = UIColor.white
}

override public func touchesBegan(_ touches: Set<UITouch>, with event:
UIEvent?) {
for touch: AnyObject in touches{
let location = touch.location(in: self)
if (self.atPoint(location) == self.playButton) {
let skView = self.view as! SKView
skView.ignoresSiblingOrder = true

let scene = PlayScene(size: self.size)
scene.scaleMode = .resizeFill
scene.size = skView.bounds.size

skView.presentScene(scene)
}
}
}
}

最佳答案

我假设您不了解 Spritekit 中默认 anchor 系统的工作原理。

enter image description here

默认情况下,场景和所有对象都是使用 anchor 0.5, 0,5 创建的。它将所有新对象放置在屏幕的正中央。

因此,您在 CGPoint(x: 1, y: 2) 播放按钮上设置的位置是将播放按钮设置为距中心 3 个像素(不是很多)。

假设您希望地面位于场景底部,并且播放按钮位于屏幕中央,您将像这样布局

playButton.position = CGPoint(x: 0, y: 0) //or CGPoint.zero or nothing at all since by default it will get placed in the center
playButton.zPosition = 1
self.addChild(playButton)

ground.position = CGPoint(x: 0, y: 0 - self.size.height / 2 + ground.size.height / 2)
ground.zPosition = 1
self.addChild(ground)

我知道您已指定忽略同级顺序,但我认为指定 zPositions 是更好的做法。

值得注意的是,您也可以使用以下方法将场景 anchor 更改为左下角

self.anchorPoint = CGPoint.zero

这可能是您的 zPositions 未设置以及位置关闭的情况

关于swift - 多个 Sprite 节点,仅出现一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49133664/

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