gpt4 book ai didi

ios - SpriteKit - 标签在背景中的基本定位

转载 作者:可可西里 更新时间:2023-11-01 02:18:13 26 4
gpt4 key购买 nike

对 Sprite Kit 很陌生,我现在正在阅读一些内容,但想问一些我还没有找到最佳答案的问题。

我正在编写一个教程,其中包含一些创建背景的代码,然后添加标签以显示乐谱。我开始更改标签代码以将其定位在屏幕的左上角。

这是代码(我对标签 gameLabel 进行了编辑):

 let screenSize = UIScreen.mainScreen().bounds
let screenWidth = screenSize.width
let screenHeight = screenSize.height

let background = SKSpriteNode(imageNamed: "background")
background.position = CGPoint(x: screenWidth / 10, y: (screenHeight / 15) - 100)
background.blendMode = .Replace
background.zPosition = -1
addChild(background)

gameScore = SKLabelNode(fontNamed: "Chalkduster")
gameScore.text = "Score: 0"
gameScore.position = CGPoint(x: screenWidth / 10, y: (screenHeight / 15) - 100)
gameScore.horizontalAlignmentMode = .Left
gameScore.verticalAlignmentMode = .Top
gameScore.fontSize = 48
addChild(gameScore)

所以标签在任何情况下都不会显示,我的假设是:

因为我首先添加了背景,标签被添加到背景的范围内,因此它需要以不同的方式定位,也许使用标签尺寸而不是屏幕尺寸?

我的问题:

  1. 如何让标签始终显示在左上角?
  2. 作者为这个背景图片选择了一个硬编码的 CGPoint,然后说它必须在 iPad 上,但我想在横向的 iPhone 6/plus 和 iPad 上这样做。有没有一种方法可以让它在两种设备上工作而不必像那样指定 CGPoint?它不能随心所欲地扩展和工作吗?

谢谢,如果这些是基本问题,我深表歉意 - 我会尽我所能继续阅读这个主题..

最佳答案

  1. 您的问题有一个简单的答案。您忘记并遗漏了代码中的某些内容,我可以向您展示这些内容。

    在您的代码中,您将背景 ZPosition 设置为 -1,最小的数字将始终出现在后面。所以如果你把 SKLabelNode 设置成一个更大的 zPosition 它总是会出现在最前面,因为可能是渲染有问题,我也有过这样的经历,我是这样修复的:

在添加 LabelNode 之前,将其属性设置为:

gamescore.zPosition = 0

0,在这种情况下可以是任何比背景大的东西(或者你想出现在后面的节点)。所以这只是告诉编译器你希望 LabelNode 出现在前面,或者背景前面。

  1. 如果您想制作一个通用的应用程序或游戏,您需要使用 SpriteKit 向您的游戏或应用程序添加一些额外的代码。因为我认为最好给你一个很好的教程来向你展示而不是向你展示一些基础知识,所以我会给你一个很好的链接来告诉你如何做到这一点:

    SpriteKit: how to make a universal app

我希望这对您有所帮助,别担心,我花了一些时间来了解自己。

关于ios - SpriteKit - 标签在背景中的基本定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34501557/

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