4

スプライト キットを使用してゲームを作成していますが、オブジェクトを「ジャンプ」させる最善の方法を考えています。したがって、数ピクセルで垂直に起動されます。これは、ジャンプしたいオブジェクトのコードです:

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"bal.png"];
sprite.position = CGPointMake(self.frame.size.width/4 + arc4random() % ((int)self.frame.size.width/2), (self.frame.size.height/2 + arc4random() % ((int)self.frame.size.height/2)));
sprite.color = [self randomColor];
sprite.colorBlendFactor = 1.0;
sprite.xScale = 0.2;
sprite.yScale = 0.2;
[self addChild:sprite];
sprite.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width/2];
self.physicsWorld.gravity = CGVectorMake(0.0f, -4.0f);
4

2 に答える 2

4

スプライトに関連付けられた のvelocityプロパティを変更して、ボディに速度を与えます。physicsBody

具体的には、追加する必要があります

sprite.physicsBody.velocity = CGVectorMake(vx,vy);

編集:アクションを介してこれを行いたい場合は、これら2つのクラスメソッドのいずれかを利用してくださいSKAction

+ (SKAction *)followPath:(CGPathRef)path duration:(NSTimeInterval)sec;
+ (SKAction *)moveByX:(CGFloat)deltaX y:(CGFloat)deltaY duration:(NSTimeInterval)sec;

ただし、これらのいずれかを使用すると、速度ベクトルに基づいて何かを計算し、重力を自分で処理する必要があります (適切なdeltaXおよびdeltaYまたは正しいを与えるためpath)。これはまったく不要です。速度に言及SpriteKitして、それを解決してみませんか?

于 2013-10-17T03:02:12.667 に答える