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
}
}
Tags: cocos2d > eventi touch > intercettare tocchi > tocchi > touch > touches > Tutorial
Comments
One Response to “Tutorial – cocos2D: intercettare i tocchi”
Leave a Reply


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.