Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sprite kit 如何更改雪碧套件上的重力方向?_Sprite Kit_Skphysicsbody - Fatal编程技术网

Sprite kit 如何更改雪碧套件上的重力方向?

Sprite kit 如何更改雪碧套件上的重力方向?,sprite-kit,skphysicsbody,Sprite Kit,Skphysicsbody,我正在使用Xcode中的Sprite工具包,我想知道如何更改重力方向。默认重力方向为“X”,您可以在下面的轴图形上想象。如果我想更改为“Y”,该怎么办 我的目标是给予物体坠落的效果。它就像从高处坠落并触地,而不是得到物理的回应! (可能是棋盘游戏中的骰子) //默认重力方向为X SKSpriteNode *myNode =[SKSpriteNode spriteNodeWithImageNamed:@"ball"]; myNode.physicsBody=[SKPhysicsB

我正在使用Xcode中的Sprite工具包,我想知道如何更改重力方向。默认重力方向为“X”,您可以在下面的轴图形上想象。如果我想更改为“Y”,该怎么办

我的目标是给予物体坠落的效果。它就像从高处坠落并触地,而不是得到物理的回应! (可能是棋盘游戏中的骰子)

//默认重力方向为X

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

提前谢谢

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

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

在SpriteKit中,X和Y是您在屏幕上看到的默认坐标,Z坐标是对象的定位顺序(zPosition)。由于SpriteKit使用2D游戏引擎,因此您没有第三维度Z可供利用。可以在Y和X之间更改重力(分别在屏幕的顶部/底部和左侧/右侧),但不能在Z坐标之间更改重力。如果你想重新创建一个“掷骰子”的效果,我建议你创建一个称为“骰子”的精灵,并将其缩放到一个较大的量,一旦你将其添加到场景中,你就可以在x秒内将其缩小

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

这将使骰子看起来好像要落下,如果您使用,您可能需要为其添加一些旋转动画。如果您想使用3D引擎,请尝试使用Metal或SceneKit

SKPhysicsWorld gravity:您发布的图像表示三维空间,Sprite工具包及其物理引擎仅使用二维(上/下和左/右)。{0,-10}的重力将给你向下的重力。请阅读文档。默认重力指向负y,SpriteKit是2D引擎,而不是3D引擎。空间坐标正是我们所期望的:0,0是左下角,x在右边,y在上升。