gpt4 book ai didi

swift - sprite.xScale 响应速度慢

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

在我的 SpriteKit 游戏中,我希望根据用户垂直拖动来调整 Sprite (下面名为“manta”)的大小。向上拖动应该使 Sprite 变大,而向下拖动应该缩小 Sprite 。

我已经实现了 UIPanGestureRecognizer 并在 rec.state == .Changed 中,我有以下代码:

let deltaY = startPoint.y - currentPoint.y
newScale = mantaCurrentScale + ((deltaY / dragHeight ) * mantaScaleDiff )
if (newScale <= mantaMaxScale) && (newScale >= mantaMinScale) {
manta.xScale = newScale
manta.yScale = newScale
mantaCurrentScale = newScale
}

它可以工作,但不可靠,调整大小的响应速度很慢,并且在实时游戏中无法使用。

是否有我不知道的 SprikeKit 技巧,可以优先考虑此过程,或者有更好的替代方案来在 SpriteKit 中创建这样的控件?

最佳答案

我个人不会使用手势识别器,因为如果您知道触摸点,这会容易得多。

这是 sudo 代码中的示例,您可能会发现它有效。所有这些函数都可以在 SKScene 内部重写,并且可以轻松找到位置。

var dragging:boolean = false

TouchesBegan()
{
if (fingerHasClickedSquare == true)
{dragging=true}
else
{dragging=false}
}

TouchesEnded()
{
dragging = false
}

TouchesMoved()
{
if (dragging == true)
{
manta.size.width = (fingerPosition.x - squarePosition.x) * 2 //this either needs to be *2 or /2 or *1 I dont remember which
}
}

如果您需要进一步帮助将其转换为真正的 swift 代码 this主题显示了获取触摸位置及其所触摸的节点所需的一些代码行。

关于swift - sprite.xScale 响应速度慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35164874/

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