我知道 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/