2009-10-21 5 views
1

Dans de nombreux jeux, lorsqu'un personnage parle (dialogue), le texte a un effet de frappe, où il semble que vous regardez le caractère tapez le texte.Effet de frappe de texte dans l'iPhone cocos2d Jeu

Quel serait un bon moyen d'obtenir ce look et une (simple) "animation" pour un jeu iPhone qui utilise cocos2d?

C'est bien qu'il y ait un moyen de le faire avec cocos2d, mais je ne suis pas complètement opposé à la superposition d'une sous-classe UIView (UILabel?) En plus de la vue EAGL (OpenGL ES) de cocos2d.

Répondre

2

J'ai fini par utiliser des éléments UIKit intégrés (UILabel) et je les ai ajouté comme sous-vues à la fenêtre.

1

le UIKit intégré ne pouvait pas fonctionner correctement avec cocos2d-built-inUIKit, tel que CCLabel,CCSprite.

0

Je suggère d'utiliser un CCLabelTTF et CCAction comme suit:

- (void) typeText 
{ 
    static NSUInteger currentCharacter = 0; 

    // Your instance variable stores the text you want to "type" in it: 
    _text; 

    // Sorry, I can't remember substring functions, this is pseudo-code: 
    NSString *substring = [_text getSubstringFrom:0 to:currentCharacter]; 

    // Also can't remember how to get length of a string (yipes) 
    NSUInteger stringLength = [_text length]; 

    if (currentCharacter < stringLength) 
    { 
     CCSequence *loop = [CCSequence actions:[CCDelayTime actionWithDuration:0.3f],[CCCallFunc actionWithTarget:self selector:@selector(typeText)],nil]; 
     [self runAction:loop]; 
    } 
} 

Ce code non testé est. En outre, il suppose que la fonction typeText est implémentée dans une sous-classe de CCNode car elle appelle [self runAction:]