如何在Sprite Kit上改变重力方向?

时间:2014-05-03 21:15:22

标签: sprite-kit skphysicsbody

我在Xcode中使用Sprite Kit,我想知道如何改变重力方向。默认重力方向为" X"你可以在下面的轴上想象图形。如果我想换到" Y"。

我的目标是反对落下的效果。就像从高处坠落并触地而不是回应物理! (可能是游戏中的骰子)

enter image description here

//默认重力方向为X

    SKSpriteNode *myNode =[SKSpriteNode spriteNodeWithImageNamed:@"ball"];
    myNode.physicsBody=[SKPhysicsBody bodyWithCircleOfRadius:self.frame.size.width/2];
    [self addChild: myNode];

提前致谢!

2 个答案:

答案 0 :(得分:5)

您可以使用此代码将矢量应用于场景的物理世界

self.physicsWorld.gravity=CGVectorMake(0,-10);

答案 1 :(得分:2)

在SpriteKit中,X和Y是您在屏幕上看到的默认坐标,Z坐标是对象所在的顺序(zPosition)。由于SpriteKit使用2D游戏引擎,因此您没有第三个维度Z来使用。您可以更改Y和X(屏幕的上/下和左/右)之间的重力,但不能更改Z坐标之间的重力。如果你想重新创造一个"骰子掉落"效果,我建议你创建一个名为Dice的Sprite,并将其缩放到场景中,然后将其缩小到x秒。

[self runAction:[SKAction scaleBy:negativeFloatHere duration:3]];

这将使骰子看起来摔倒,如果你有骰子,你可能想为它添加一些旋转动画。如果您想使用3D引擎,请尝试使用Metal或SceneKit