Как заставить спрайты реагировать на прикосновения в cocos2d android?

у меня 1 пушка при нажатии на любую точку на экране пули выстреливают, но по моему требованию есть 3 пушки(спрайта) при прикосновении к любому из спрайтов пули должны выстреливать, когда погуглил я узнал что это может быть сделать с помощью targetTouchDelegate или зациклить все духи и установить флаг для каждого затронутого спрайта, я видел код для этого в iphone, но не смог найти для Android, пожалуйста, может ли кто-нибудь сказать, как использовать это в Android? или любые ссылки или книги для cocos2d-android были бы полезны не только мне, но и другим. Спасибо,


person DD.    schedule 20.05.2013    source источник
comment
у вас есть ответ на это?   -  person    schedule 15.07.2013
comment
нет :( @user26534 у тебя есть идеи по этому поводу?   -  person DD.    schedule 16.07.2013


Ответы (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);

}

Это моя работа вокруг.

person Aashish Bhatnagar    schedule 20.05.2013
comment
спасибо за ваш ответ, как сказать, что 1-й спрайт нажат? @Аашиш Бхатнагар - person DD.; 20.05.2013
comment
Просто пример, вы можете сделать разные прямоугольники для разных спрайтов, так как у меня есть только один его первый - person Aashish Bhatnagar; 20.05.2013