0

こんにちは私は私のスプライトを撃つ必要があります..私は以下のコードを使用します

-(void)shooter
{
LHSprite* laserSprite = [lh newPhysicalSpriteWithUniqueName:@"ball_1" ];
b2Body* laserBody = [laserSprite body];
[self addChild:laserSprite z:10]; 
NSAssert(laserSprite!=nil, @"Couldn't find devil1"); 

[laserSprite transformPosition:_hero.position];
b2Vec2 ballvel = laserBody->GetLinearVelocity();
ballvel.x = 16;
laserBody->SetLinearVelocity(ballvel);
}

上記のコードは、スプライトの右側を撮影します。

しかし、私は左側を撃つ必要があります。ballvel.x=16を変更しても。ballvel.x = -16; そのまだ右側に向かって撃っています..助けてください

私はbox2dを初めて使用するので、優しくしてください:)

4

2 に答える 2

0

構文は次のようになります。

//1。まず、移動角度を計算します。//2。ヒットのパワー(強さ)を計算します。

b2Vec2 force;

force.x = cos(angle * M_PI / 180) * power;
force.y = sin(angle * M_PI / 180) * power;

laserBody->ApplyLinearImpulse(force, laserBody->GetPosition()); //or SetLinearVelocity
于 2012-07-12T14:41:07.000 に答える
0

実際、私の弾丸スプライトはセンサーではありませんでした...それでヒーロースプライトにぶつかり、再び右側に戻りました..私の悪い..恥ずかしい:D

于 2012-07-17T05:02:21.393 に答える