【发布时间】:2018-01-01 08:49:57
【问题描述】:
我想通过一个特定的力量来旋转一个精灵节点,比如一个指尖陀螺。当用户在屏幕上快速移动手指时,微调器旋转得更快,当用户在屏幕上缓慢移动手指时,微调器 (SKSpriteNode) 旋转得更慢。
我有一个分配给节点的微调器图像。我还想检查它在哪个位置停止,因为我有一个围绕该节点的项目列表,并且根据它停止的位置,我想选择该项目。我知道我必须施加一个角脉冲,但我不知道如何计算它的值。
触摸速度越快,施加的力就越大(就像真正的旋转器一样)
这就是我正在做的:
fidgetSpinner.physicsBody?.applyAngularImpulse(5)
【问题讨论】:
-
您的问题是什么?微调器是不旋转还是旋转但用力错误?
-
我的问题是如何在触摸移动或 UITouch 的 touchesMove 代表中以准确的力旋转
-
所以您希望触摸的速度越快,施加的力就越大? (就像一个真正的微调器)?如果是这样,您能否将此信息编辑到您的问题中。
-
是的,史蒂夫,我想根据用户的移动来移动微调器,但只能绕其轴移动
-
然后您需要在适合滑动的点、方向和值对物理体施加圆形脉冲。您需要阅读 SKPhysicsBody 类参考 (developer.apple.com/documentation/spritekit/skphysicsbody/…) 中的 'applyForce(_:at:)' 方法以及 Sprite-Kit (stackoverflow.com/q/39783608/1430420) 中的滑动手势识别器以及如何提取速度,滑动的位置和方向。
标签: ios objective-c swift sprite-kit 2d-games