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