1

そのため、毎秒作成され、ランダムな位置 (sprite1) で移動するスプライトと、固定位置 (sprite2) を持つ別のスプライトがあります。スプライト1とスプライト2が衝突した際に、スプライト1がくっつくようにしたい(動かなくなってくっつく)。どうすればこれを行うことができますか? 私の英語で申し訳ありませんが、私はフランス人です:/

ps : スプライト 2 は加速度計で回転しているので、スプライト 1 が衝突した場合は回転させたいと思います :)

4

3 に答える 3

0

Cocos2dで簡単にできると思います。

1)まず、sprite1とsprite2のrectを次のように設定します。CGRectMake(x,y,width,height)

2)sprite1がランダムな位置で移動し、sprite2が特定の位置に固定されていると言ったように、を使用してそれらが衝突することを確認できますCGRectIntersectsRect([sprite1 bounds],[sprite2 bounds])

3)交差する場合は、sprite1.position = sprite2.position

注:sprite1は回転しているとおっしゃいましたが、rectは通常のボディにのみフィットできます。スプライトの正確な衝突または物理的特性が必要な場合は、box2dを使用できます。

于 2012-04-23T05:09:51.083 に答える
0

Box2d (円の衝突を処理できる) を使用したくない場合は、次のような方法を試すことができます。

1.) 衝突を検出します。これは、2 つの円の中心点 (x,y) 間の距離であり、2 つの円の半径の合計よりも小さくなります。

2.) スプライト 1 をスプライト 2 に固定し、スプライト 1 の動きを停止し、相対デルタ (x,y) をスプライト 2 に保存します。次に、スプ​​ライト 2 が移動または回転するたびに、同じデルタの動きと回転をスプライト 1 に適用します。

于 2012-04-30T17:05:22.460 に答える
0

box2d を使用してこれを行うことができると思います。衝突を検出し、回転、移動などを管理するのに役立ちます。

于 2012-04-23T04:59:17.253 に答える