0

こんにちは私はcocos2dゲームに取り組んでいます。実際の射撃場のように、目の前にターゲットがある風景とターゲットを備えたある種のシューティングゲームです。弾丸のインパクトには、画面の特定のポイントでインパクトを与えるパーティクルエフェクトを使用します。ターゲットにインパクトを与えると、単純なアニメーションが再生され、地面に落下します。私のゲームは長方形のターゲットで完璧に動作しますが、実際の体型も使用したいと思います。ですから、粒子が体に衝突すると落下します。そして、粒子が脚の間または肩の間で衝突するとヘッドショットが失敗するように、輪郭をトレースしたスプライトを使用したいと思います。このコードを使用して、パーティクルが通常の長方形ターゲットのターゲットに影響を与えるタイミングを検出します。

// Sustemは私のパーティクル(弾丸)ですCGRect projectileRect = [enemy boundingBox];

if ( CGRectContainsPoint(projectileRect, system.position)) {
    [enemy runAction:_walkAction];}

頂点ヘルパー物理エディタやその他のツールを使用してみましたが、成功しませんでした。粒子がトレースされたポイントの間にある場合にのみ、衝突検出で何らかのアクションを実行したくありません。

4

1 に答える 1

1

あなたの痛みが分かります。非正方形の衝突を検出する簡単な方法はありません。PhysicsEditorを使用して、Rayのチュートリアルに従うことができます: 衝突検出のためだけにbox2dを使用する方法。非正方形のスプライトを使用できるように、物理エンジン(私の意見ではずさんな)を実装するというアイデアは嫌いでした。ベジェ曲線など、他の方法もありますが、あなたの場合(ターゲット射撃)は、できるだけ正確な精度が必要になると思います。PhysicsEditorとbox2d/chipmunkがそれを提供します。

于 2012-12-10T03:02:35.553 に答える