0

A、B、C の 3 つのスプライトがあります。

AとCはオブジェクト...

Bは敵のスプライトです...ということで、下のデザインです。A と C の間を連続的に移動するには、B が必要です。

A ---------- B ---------- C

Update メソッドで以下のメソッドを使用します。そのため、フレームごとにメソッドが呼び出されます。

ABcollision
{
if(Aistouched == YES)
{
Bvelocity.x = 5;  /// moves my sprite B right side
}
}

CBcollision
{
if(Cistouched == YES)
{
Bvelocity.x = -5; /// moves my sprite B right side
}
}

速度を更新する私の更新方法:

   b2Vec2 dins = dinobody->GetLinearVelocity();
   dinobody->SetLinearVelocity(Bvelocity);

上記のコードは、スプライト B を左右に 1 回だけ移動させます。

4

1 に答える 1

0

一度しか機能しない場合の問題は、私が言えることからBOOLをリセットしないためだと思います。AistouchedおよびCistouchedAistouched = FALSEセットの直後に追加してみてくださいBvelocity.x = 5;。Cについても同じです。

于 2012-08-10T12:51:06.253 に答える