gpt4 book ai didi

ios - 如何通过 ease in 和 ease out 创造更自然的跳跃?

转载 作者:行者123 更新时间:2023-11-28 05:27:56 27 4
gpt4 key购买 nike

我正在设计一款“玩家”必须跳跃的游戏。我有一个有效的跳跃功能,但跳跃非常“线性”。我希望跳跃具有“缓入”和“缓出”功能。

这意味着跳跃的第一部分应该上升得更快,而在“顶部”附近速度会降低,而在向下移动时速度应该会增加。

我已经尝试了一些事情:

var jumpStartTime: CGFloat = 0.0
var jumpCurrentTime: CGFloat = 0.0

var currentDuration = CGFloat(currentTime) - jumpStartTime

但是,我不知道从哪里开始以及如何开始。

这是线性跳跃的函数。

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

if onGround && !gameOver {
if self.initialJumpY == nil {
self.initialJumpY = self.character.position.y
}

if self.character.position.y - self.initialJumpY! < 100 {
self.character.physicsBody?.applyImpulse(CGVectorMake(0, 75))
} else {
self.character.physicsBody?.velocity.dy = 0.0
}
}

self.onGround = false

}

override func touchesEnded(touches: Set<NSObject>, withEvent event: UIEvent) {
self.character.physicsBody?.velocity.dy = 0.0
self.initialJumpY = nil
}

如何进行更“自然”的线性跳跃?

谢谢大家!

尼克。

最佳答案

首先,“线性”跳跃永远不会自然。您需要对速度应用负加速度。速度的变化将是线性的。速度公式如下所示:v = v0 - 因子 * t。

t 是时间 v0 将是初始速度,因素是您尝试获得良好效果的因素。以米每秒为单位的速度和以秒为单位的时间,地球重力系数为 9.81。

关于ios - 如何通过 ease in 和 ease out 创造更自然的跳跃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30267355/

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