Как включить мультитач cocos2d - PullRequest
0 голосов
/ 22 сентября 2011

Я хочу иметь возможность включить мультитач для cocos2d.Как я могу это сделать?Я хочу протестировать каждое событие касания, как мой код ниже.Пожалуйста, помогите.

-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

UITouch *myTouch = [touches anyObject];
CGPoint location = [myTouch locationInView:[myTouch view]];
location = [[CCDirector sharedDirector] convertToGL:location];
b2Vec2 locationWorld = b2Vec2(location.x/PTM_RATIO, location.y/PTM_RATIO);
CGSize screenSize = [CCDirector sharedDirector].winSize;

if (locationWorld.x >= screenSize.width*2/5/PTM_RATIO && locationWorld.x <= screenSize.width*3.25/5/PTM_RATIO) {
    cannonballTouch1 = 1;
    float force = 6;
    b2Vec2 direction = cannonballBody->GetWorldCenter() - cannonBody->GetWorldCenter();
    b2Vec2 iforce = b2Vec2(1.0f/direction.x * force, 1.0f/direction.y * force);
    NSLog(@"%.2f", direction.y);
    NSLog(@"%.2f", iforce.y);
    b2Vec2 force1 = b2Vec2(0, iforce.y);
    cannonballBody->ApplyLinearImpulse(force1, cannonballBody->GetPosition());
}
if (locationWorld.x > screenSize.width*3.25/5/PTM_RATIO) {
    cannonballTouch2 = 1;
    float force = 6;
    b2Vec2 direction = cannonballBody2->GetWorldCenter() - cannonBody2->GetWorldCenter();
    b2Vec2 iforce = b2Vec2(1.0f/direction.x * force, 1.0f/direction.y * force);
    NSLog(@"%.2f", direction.y);
    NSLog(@"%.2f", iforce.y);
    b2Vec2 force1 = b2Vec2(0, iforce.y);
    cannonballBody2->ApplyLinearImpulse(force1, cannonballBody2->GetPosition());
}
}

1 Ответ

0 голосов
/ 22 сентября 2011

эта страница хорошо ее описывает.

http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/MultitouchEvents/MultitouchEvents.html

Для обработки событий мультитач, вы должны сначала создать подкласс класса респондента. Этот подкласс может быть любым из следующих:

Пользовательский вид (подкласс UIView) Подкласс UIViewController или один из его подклассов UIKit Подкласс представления UIKit или класса управления, такого как UIImageView или UISlider Подкласс UIApplication или UIWindow (хотя это было бы редко) Контроллер представления обычно получает через цепочку респондента события касания, первоначально отправленные его представлению, если это представление не переопределяет методы обработки касания.

Чтобы экземпляры вашего подкласса получали события мультитач, ваш подкласс должен реализовывать один или несколько методов UIResponder для обработки сенсорных событий, описанных ниже. Кроме того, представление должно быть видимым (ни прозрачным, ни скрытым), а его свойство userInteractionEnabled должно иметь значение YES (по умолчанию).

В следующих разделах описываются методы обработки сенсорных событий, описываются подходы к обработке общих жестов, показывается пример объекта респондента, который обрабатывает сложную последовательность событий с несколькими касаниями, обсуждается пересылка событий и предлагаются некоторые методы для обработки событий.

...