Ios xcode UIDynamicAnimator中的多重引力或恒力

Ios xcode UIDynamicAnimator中的多重引力或恒力,ios,game-engine,uikit-dynamics,Ios,Game Engine,Uikit Dynamics,我意识到雪碧套件是玩游戏的好方法,但我想知道是否有办法使用UIdynamicanitor来设置除重力之外的额外恒力。我正在做一个平台游戏,并已将重力向下设置。我有屏幕设置的部分来表示箭头键(按屏幕顶部跳跃,侧边向左/向右移动…)。到目前为止,我已经使用UIPushBehavior来跳跃和左右跳动 我想做的是让视图(播放器)在按键按下时不断向左或向右移动。我想这需要第二个侧面的“重力”。我会在触摸屏幕左侧部分时打开此按钮,在松开触摸按钮时关闭此按钮。有没有其他办法?显然你不能做2个重力。我在想,如

我意识到雪碧套件是玩游戏的好方法,但我想知道是否有办法使用UIdynamicanitor来设置除重力之外的额外恒力。我正在做一个平台游戏,并已将重力向下设置。我有屏幕设置的部分来表示箭头键(按屏幕顶部跳跃,侧边向左/向右移动…)。到目前为止,我已经使用UIPushBehavior来跳跃和左右跳动

我想做的是让视图(播放器)在按键按下时不断向左或向右移动。我想这需要第二个侧面的“重力”。我会在触摸屏幕左侧部分时打开此按钮,在松开触摸按钮时关闭此按钮。有没有其他办法?显然你不能做2个重力。我在想,如果你不能做2个力,也许是一种为视图在一个方向上设置恒定速度的方法


编辑:我想另一种表达方式是。。。有没有办法直接设置视图的速度?

您可以使用
UIPushBehavior

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

您只需将
模式
更改为
UIPushBehaviorModeContinuous
即可产生恒定的力。玩的幅度和角度,直到它符合您的需要。这将对视图应用恒定加速度。

您可以使用
UIPushBehavior

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

您只需将
模式
更改为
UIPushBehaviorModeContinuous
即可产生恒定的力。玩的幅度和角度,直到它符合您的需要。这将持续加速您的视图。

感谢您的及时响应。我试过了,效果完全符合预期。你知道怎样限制速度吗?就像游戏中的角色可以加速到最大速度一样?@MingMan我不确定,但是如果你在你的物体达到你想要的速度后关闭推送行为,并关闭摩擦,它应该保持这个速度。对,这是有意义的。事实上我一直在想办法加快浏览速度。那是真的吗?我很笨,我刚找到它。再次感谢您的帮助(顺便说一句,所有想了解其“linearVelocityForItem:”)不客气,@MingMan!很高兴你找到了你想要的。谢谢你及时的回复。我试过了,效果完全符合预期。你知道怎样限制速度吗?就像游戏中的角色可以加速到最大速度一样?@MingMan我不确定,但是如果你在你的物体达到你想要的速度后关闭推送行为,并关闭摩擦,它应该保持这个速度。对,这是有意义的。事实上我一直在想办法加快浏览速度。那是真的吗?我很笨,我刚找到它。再次感谢您的帮助(顺便说一句,所有想了解其“linearVelocityForItem:”)不客气,@MingMan!很高兴你找到了你想要的东西。