Nic*_*ard 2 objective-c game-physics ios sprite-kit skspritenode
我有一个球在屏幕上反弹.根据用户所达到的水平,我让球更快.所以,我做了以下事情:
[ball.physicsBody applyImpulse:[self vectorForLevel:self.level]];
Run Code Online (Sandbox Code Playgroud)
构建的方法CGVector.
- (CGVector)vectorForLevel:(int)level {
CGFloat thrust = level+3;
return CGVectorMake(thrust*cosf(4), thrust*sinf(-4));
}
Run Code Online (Sandbox Code Playgroud)
虽然这个效果非常好并且可以像我想的那样加速每个级别,但我还想随机化球的起始角度,但我不知道该怎么做.
我不太了解CGVector如何真正知道如何改变角度.我扔在那里的角度是4和-4吗?
有谁知道如何随机化方向?
你在里面使用的表达式CGVectorMake()本质上是从极坐标到笛卡儿的转换.
的X分量由下式给出radius * cos(theta),其中THETA是弧度的角度.ÿ是radius * sin(theta).零角度通常指向右侧("正东").
因此,只需更改theta即可更改向量的方向.(这是最明智的为同一个号码传递给双方cosf()和sinf(),当然你会得到一些结果,不管你用什么.)
| 归档时间: |
|
| 查看次数: |
689 次 |
| 最近记录: |