改变节点方向

时间:2014-08-20 12:59:45

标签: ios objective-c sprite-kit game-physics

我开发的游戏几乎就像突破一样,考虑到球击中球拍的位置,它应该改变它的方向。

enter image description here

这是一个杰作,可以解释我试图达到的功能。我已经能够获得球击中球拍的位置。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

使用didBeginContact确定接触时球和球拍的中心点。

- (void)didBeginContact:(SKPhysicsContact *)contact
{
    uint32_t collision = (contact.bodyA.categoryBitMask | contact.bodyB.categoryBitMask);

    if (collision == (CategoryBall | CategoryPaddle))
    {
        if((contact.bodyA.node.position.x > contact.bodyB.node.position.x) && (contact.bodyA.node.position.x <= contact.bodyB.node.position.x+10))
        {
            // ball's center is a little to the right of paddle's center
        }

        if(contact.bodyA.node.position.x > contact.bodyB.node.position.x+10)
        {
            // ball's center is more to the right of paddle's center
        }

        if((contact.bodyA.node.position.x < contact.bodyB.node.position.x) && (contact.bodyA.node.position.x >= contact.bodyB.node.position.x-10))
        {
            // ball's center is a little to the left of paddle's center
        }

        if(contact.bodyA.node.position.x < contact.bodyB.node.position.x-10)
        {
            // ball's center is more to the left of paddle's center
        }
    }
}