5 vector objective-c ios sprite-kit
我想SKSpriteNode在特定的角度赋予我力量。那么,如何对待我CGVector在特定角度的给力?
我已经搜索过它,但不幸的是没有得到任何好的方法。
我想要实现的目标:
我SKSpriteNode走向屏幕。顶部有按钮,如 30、45、60。因此,如果用户按下按钮(即该按钮包含“30”),那么我必须以SKSpriteNode相同的速度将我的移动到 30 度。
如果你们中的任何人可以帮助我,请帮助我解决这个问题。
首先,您需要将角度乘以 pi / 180,将角度转换为弧度
CGFloat angleInRadians = angleInDegrees * M_PI / 180;
Run Code Online (Sandbox Code Playgroud)
然后您可以通过以下方式确定该方向上的矢量分量
CGFloat dx = cosf(angleInRadians);
CGFloat dy = sinf(angleInRadians);
Run Code Online (Sandbox Code Playgroud)
最后对精灵施加一个力
[sprite.physicsBody applyForce:CGVectorMake(dx*scale, dy*scale)];
Run Code Online (Sandbox Code Playgroud)
其中scale决定了施加的力的大小。
或者,您可以旋转精灵使其面向与其运动相同的方向
sprite.zRotation = angleInRadians + offset;
Run Code Online (Sandbox Code Playgroud)
其中offset是精灵图像与零度之间的角度差(以弧度为单位)。例如,如果你的精灵面朝上,当zRotation为零时,offset应该是-M_PI_2。
| 归档时间: |
|
| 查看次数: |
1427 次 |
| 最近记录: |