ios - xcode UIDynamicAnimator 中的多重重力或恒力

标签 ios game-engine uikit-dynamics

我知道 sprite kit 是玩游戏的方式,但我想知道是否有办法使用 UIDynamicAnimator 来设置除重力之外的额外恒定力。我正在制作平台游戏并将重力设置为向下。我有部分屏幕设置来表示箭头键(按屏幕顶部跳跃,两侧向左/向右移动......)。到目前为止,我已经使用 UIPushBehavior 左右跳跃和脉冲。

我想做的是让 View (播放器)在按键按下时不断向左或向右移动。我想这将需要第二个横向“重力”。当触摸屏幕的左侧部分时,我会打开它,当触摸被释放时,我会关闭它。关于替代方案的任何想法?显然你不能制造 2 个重力。我在想,如果你不能做 2 个力,也许可以为一个方向的 View 设置恒定速度。

编辑:我猜另一种表达方式是...有没有办法直接设置 View 的速度?

最佳答案

您可以使用 UIPushBehavior:

UIPushBehavior *pushBehavior = [[UIPushBehavior alloc] initWithItems:@[self.viewToAccelerate] mode:UIPushBehaviorModeContinuous];
pushBehavior.angle = M_PI_4;
pushBehavior.magnitude = 0.3;
[self.animator addBehavior:pushBehavior];

您只需将 mode 更改为 UIPushBehaviorModeContinuous 即可产生恒定的力。调整幅度和角度,直到它符合您的需要。这将为您的 View 应用持续加速。

关于ios - xcode UIDynamicAnimator 中的多重重力或恒力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22288330/

相关文章:

iphone - 如果 UIActivityIndi​​catorView 被移除/释放/解除分配,它是否会自行停止动画

c# - unity3D错误: Parser error

c++ - 创建 C++ 事件系统

ios - 我如何判断 UIDynamicAnimator 何时处于静止状态?

ios - 带有附件的 UIKit 动态行为平移不继续碰撞行为?

ios - 如何保持avaudioplayer在设备(iPhone)锁定状态下播放?

ios - box2d iOS 软体

ios - 赌博许可证是否必须集成 iOS 应用程序的应用程序内投注?

xml - 使用lua存储游戏数据效率高吗?

ios - 重力与 UIview