2010-12-06 8 views

Répondre

2

Vous pouvez tracer des lignes en remplaçant la méthode "draw", ce qui entraînera l'effet "stroke" que vous semblez avoir après. La question manque un peu de détail, alors je vais essayer d'en tirer le meilleur parti.

Disons que vous voulez tracer une ligne simple sur l'écran, vous pouvez effectuer les opérations suivantes:

@interface MyLine: CCNode 
{ 
    CGRect lineRect; 
} 
@property(nonatomic) CGRect lineRect; 
+(id)lineWithRect:(CGRect)rect; 
@end 

@implementation MyLine 
@synthesize lineRect 
+(id)lineWithRect:(CGRect)rect 
{ 
    MyLine *node = [MyLine node]; 
    [node setRect: rect]; 
    return node]; 
} 
-(void)draw 
{ 
    glEnable(GL_LINE_SMOOTH); 
    ccDrawLine(ccp(rect.origin.x, rect.origin.y), ccp(rect.size.width, rect.size.height)); 
} 
@end 

Avec cette classe, vous seriez en mesure d'appeler:

MyLine *line = [MyLine lineWithRect:CGRectMake(0, 0, winSize.width, winSize.height)]; 

qui dessinerait alors une ligne de la partie inférieure gauche de l'écran en haut à droite de l'écran. Vous ne convertiriez pas ceci en "sprite", car ce serait inutile de le faire - mais vous pourriez alors traiter cela comme si c'était n'importe quel autre graphisme dans votre jeu, comme c'est maintenant sa propre sous-classe de CCNode ... contenant toute la bonté qui vient avec ça (positionnement, etc).