iCGdev

I miei Software, Apple blog e Tutorial

Tutorial – cocos2D: intercettare i tocchi

Posted on | ottobre 12, 2009 | 1 Comment

Per intercettare gli eventi touch in un gioco sviluppato con il framework cocos2D, dovete prima di tutto creare una classe di tipo Layer.
Infatti i tocchi sono intercettabili solo nei Layer (e derivati, come i ColorLayer).

La prima cosa da fare è, nel metodo init del Layer, abilitare i tocchi:

isTouchEnabled = YES;

Dopodichè, dovete implementare il seguente metodo:

- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *) event

{

// vostro codice

}

In questo modo intercetterete tutti i tocchi che avvengono sul Layer. Ovviamente, se dovete intercettare un tocco su una determinata Sprite, dovete lavorare sulla posizione e sulla dimensione della Sprite stessa.

Facciamo un piccolo esempio.

Immaginiamo che vogliamo intercettare i tocchi su una determinata Sprite (immagine). Per prima cosa, determiniamo la posizione e la grandezza della Sprite:

- (CGRect)rectSprite{

float w = [nomeSprite contentSize].width;

float h = [nomeSprite contentSize].height;

CGPoint point = CGPointMake([nomeSprite position].x – (w/2), [nomeSprite position].y – (h/2));

return CGRectMake(point.x, point.y, w, h);

}

Ora, nel metodo esposto poco fa, intercettiamo i tocchi su di essa:

- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *) event

{

UITouch *touch = [touches anyObject];

CGPoint point = [touch locationInView: [touch view]];

point = [[Director sharedDirector] convertCoordinate: point];

if(CGRectContainsPoint([self rectSprite], point)){

// Intercetto il tocco sulla sprite

}

}

Comments

One Response to “Tutorial – cocos2D: intercettare i tocchi”

  1. cash advance
    novembre 13th, 2009 @ 06:52

    http://www.icgdev.com is very informative. The article is very professionally written. I enjoy reading http://www.icgdev.com every day.

Leave a Reply





Lascia questi due campi così come sono: