5

画面上の任意のポイントをタップすると弾丸が発射されると1つの銃がありますが、私の要件によれば、スプライトの弾丸のいずれかに触れると3つの銃(スプライト)があり、グーグルで検索すると、これが可能であることがわかりましたtargetTouchDelegate を使用するか、すべてのスピリットをループして、タッチされたスプライトごとにフラグを設定することによって行われます。iPhone でこのコードを見たことがありますが、Android で見つけることができませんでした。Android でこれを行う方法を教えてください。または cocos2d-android のリンクや本は、私だけでなく他の人にも役立ちます。ありがとう、

4

1 に答える 1

0

そのような場合に私がすることは、これを使用してスプライトの矩形を取得することです

CGRect projectileRect = CGRect
                .make(sprite.getPosition().x
                        - (sprite.getContentSize().width / 2.0f),
                        sprite.getPosition().y
                                - (sprite.getContentSize().height / 2.0f),
                        sprite.getContentSize().width,
                        sprite.getContentSize().height);

クリックされたポイントがその特定のスプライトの長方形内にあるかどうかを検出します。onccTouchBegan をオーバーライドしてクリックされたポイントを取得し、衝突を探すこ​​とができます。

@Override
public boolean ccTouchesBegan(MotionEvent event) {
    // TODO Auto-generated method stub

    CGPoint touchLocation=CGPoint.ccp(event.getX(), event.getY());
    CGRect targetRect = CGRect.make(
            event.getX(),
            event.getY(),
            5,
            5);

        if (CGRect.intersects(projectileRect, targetRect))
                  1st sprite is clicked 

    return super.ccTouchesBegan(event);

}

これは私の回避策です。

于 2013-05-20T11:40:28.377 に答える