弹跳并提高球的速度

时间:2016-02-20 22:03:44

标签: swift sprite-kit swift2

在Swift中,使用SpriteKit,我创建了一个初始恒定速度的球,它在屏幕周围反弹。我还创造了一些砖块,当球接触砖块时,速度增加,但问题是当球接触砖块时,它总是向一个方向移动, 因为每次球撞到砖块时都是正确的:

ball.physicsBody!.velocity = CGVectorMake(CGFloat(speed1+100), CGFloat(speed2+100))

我希望当球从上到下并接触到一块砖时,它会正常地弹到顶部并提高速度,当球从底部到顶部并且接触到一块砖时,正常反弹到底部并提高速度。 我该怎么办?

1 个答案:

答案 0 :(得分:0)

好的,根据我的理解,你希望它能从砖头上反弹,并获得一些速度。以下是我将如何做到这一点:

// Place this up where you define globals
float speedMultiplier = 1.1
// Create a new x velocity
float dx = ball.physicsBody!.velocity.dx * speedMultiplier
// Create a new y velocity
float dy = ball.physicsBody!.velocity.dy * speedMultiplier
// Set the velocity to the ball
ball.physicsBody!.velocity = CGVectorMake(dx, dy)

如果砖块的物理实体仍然存在(这听起来像是这样),它应该允许它从砖块上反弹。当然可以调整speedMulitplier来提高您想要的速度(或者尽可能少)。