【问题标题】:How to get sprites react to touches in cocos2d android?如何让精灵对 cocos2d android 中的触摸做出反应?
【发布时间】:2013-05-14 22:23:27
【问题描述】:

当点击屏幕上的任何一点时,我有 1 支枪,子弹会发射出去,但根据我的要求,当触摸任何精灵时,有 3 支枪(精灵)子弹必须发射,当我用谷歌搜索时,我才知道这可以通过使用targetedTouchDelegate 或循环所有精灵并为每个触摸的精灵设置标志来完成,我已经在iphone 中看到了此代码,但在android 中找不到,请有人告诉如何在android 中使用它吗?或者 cocos2d-android 的任何链接或书籍不仅对其他人有用。谢谢,

【问题讨论】:

  • 你有答案了吗?
  • 不 :( @user26534 你有什么想法吗?

标签: android cocoa-touch cocos2d-iphone touch cocos2d-android


【解决方案1】:

那么在这种情况下我会做的是使用这个为我的精灵获取矩形

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
  • 只是一个例子,你可以为不同的精灵制作不同的矩形,因为我只有一个它的第一个
猜你喜欢
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多