gpt4 book ai didi

iOS - 如何根据元素的数量调整屏幕上元素的大小

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:09:45 26 4
gpt4 key购买 nike

因此,我正在使用 Spritekit 开发一款游戏,该游戏使用 Sprites 金字塔(让我们说一个简单的例子是圆圈)。用户可以选择他们希望在游戏中拥有的 Sprite 行数。 Sprite 要形成一个金字塔,所以如果你有 1 行,你就有 1 个 Sprite 节点。它越往下增加 2(您选择的行越多)- 创建金字塔形状。因此,如果用户选择 3 行,游戏板将如下所示:

哦哦哦
O O O O O

但是,当它达到 5 行时,它就失去了金字塔形状,因为屏幕只有这么宽,而且它必须将所有元素都放在屏幕上(元素在更靠下的行中更加困惑)。

我的问题是,要解决这个问题,我需要做什么才能根据选择的行数调整金字塔的大小并更改其元素之间的间距?我必须将间距乘以某个系数吗?我还听说有人在屏幕上添加图层 - 也许在某种容器中绘制 Sprite ,以便它始终调整金字塔的大小以适应屏幕而不扭曲金字塔形状?

最佳答案

你的想法是正确的!创建一个 SKNode 容器,然后更新它的 .size 属性,或者执行 .setScale

(现在不在 xcode,如果不是 100%,请原谅)

// Say that our scene's size is 400x400:
let bkg = SKShapeNode(rectangleOfSize: self.size)
bkg.addChild(firstSprite)
bkg.addChild(secondSprite) // And so on...

// Find the farthest point in bkg:
var farthestX = CGFloat(0)
for node in bkg.children {
if node.position.x + node.frame.size.width / 2 > farthestX {
farthestX = node.position.x + node.frame.size.width / 2
}
}

// Do math to resize the bkg:
if self.size.width < farthestX {
let scaler = self.size.width / farthestX
bkg.setScale(scaler)
}

这应该可行,或者至少总体思路应该可行...您还需要检查 Y 值和高度。

关于iOS - 如何根据元素的数量调整屏幕上元素的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44729987/

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