如何在cocos2d android中使精灵对触摸作出反应?

5
我有一把枪,当在屏幕上的任何点上点击时,子弹会发射出去。但是根据我的要求,有3个枪(精灵),当触摸到任何一个精灵时,子弹必须向上射出。当我进行谷歌搜索时,我了解到可以通过使用targetedTouchDelegate或循环所有的精灵并为每个被触摸到的精灵设置标志来实现这一点。我已经看过了iPhone上的代码,但找不到Android的相关信息。请问有人可以告诉我如何在Android中实现这一点吗?或者提供一些关于cocos2d-android的链接或书籍,这对我和其他人都很有用。谢谢。

你有这个问题的答案吗? - user2098588
不好意思 :( @user26534 你有任何想法吗? - DD.
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);

}

这是我的解决方法。


谢谢您的回复,如何判断第一个精灵被点击了?@Aashish Bhatnagar - DD.
只是一个例子,你可以为不同的精灵制作不同的矩形,因为我只有一个,它是第一个。 - Aashish Bhatnagar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接