gpt4 book ai didi

ios - 使用 swift (SpriteKit) 检测触摸压力(力)

转载 作者:搜寻专家 更新时间:2023-10-31 22:59:22 27 4
gpt4 key购买 nike

所以,我在 Xcode 上用 Swift 玩了这个游戏,我有一个跳跃的 SKShapeNode。不过,我希望这种跳跃与玩家的触感相称。因此,小水龙头会跳得小,而轻快的水龙头会跳得更高。怎么可能做到这一点(请注意,我不想要任何 3D 触摸选项)?

最佳答案

通常,游戏中的这类事情是通过计时按下并相应地改变跳跃高度来完成的。 (这也是为什么在 2D 平台游戏中使用物理对于这类事情来说很棘手)。

在像 super 马里奥这样的游戏中,它的做法是在按下触摸键后立即开始跳跃运动。然后在一段时间后(因为角色“向上”跳跃了一半),您检查触摸是否仍然向下。如果是,你可以让跳跃动画继续向上。如果触摸被释放,则开始再次向下跳跃。

这样一来,短时间的触摸就是小跳,而长距离的触摸就是更高的跳跃。

如果你现在有一个 smallJumpActionbigJumpAction 那么你可以做的就是把它分解成更小的部分......

beginJumpAction 立即触发,然后... smallJumpEndActionbigJumpEndAction

这可以通过序列操作来完成...

let beginJumpAction = //move the player upwards slightly
let smallJumpEndAction = //begin to move the player down
let bigJumpEndAction = //move the player up a bit more and then move down

let blockAction = SKAction.run {
if touchStillDown {
player.runAction(bigJumpEndAction)
} else {
player.runActgion(smallJumpEndAction)
}
}

player.runAction(SKAction.sequence([beginJumpAction, blockAction])

反正就是这样。虽然有很多方法可以解决这个问题:)

关于ios - 使用 swift (SpriteKit) 检测触摸压力(力),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39078621/

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