2010-03-13 5 views
0

J'essaie de dessiner deux sprites sur le même écran. J'ai défini les deux objets sprite dans deux fichiers de classe distincts.Cocos2d sur iPhone: Utilisation de sprites définis dans des fichiers de classe séparés

  1. Si je commente sur deux lignes (voir « point 1 » commentaire ci-dessous), puis-je obtenir un affichage sur le côté gauche [backgroundImage [background2.jpg] avec un sprite [grossini.png].
  2. Si je ne commente pas les deux lignes, je ne reçois pas l'image d'arrière-plan et l'image-objet de (gameScreen.m). Je n'ai que le sprite [grossinis_sister1.png] défini dans (enemy.m).
  3. Mais ce dont j'ai besoin, c'est [backgroundimage [background2.jpg]], sprite [grossini.png] et sprite [grossinis_sister1.png] dans un seul écran.

C'est un fichier de mise en œuvre de ma première classe:

#import "gameScreen.h" 

#import "enemy.h" 
@implementation gameScreen 

-(id)init 
{ 
    if((self = [super init])) 
    { 
     CCSprite *backGroundImage = [CCSprite spriteWithFile:@"background2.jpg"]; 
     backGroundImage.anchorPoint = ccp(0,0); 
     CCParallaxNode *voidNode = [CCParallaxNode node]; 
     [voidNode addChild:backGroundImage z:-1 parallaxRatio:ccp(0.0f,0.0f) positionOffset:CGPointZero]; 

     [self addChild:voidNode]; 

     CGSize windowSize = [[CCDirector sharedDirector] winSize]; 

     CCSprite *player = [CCSprite spriteWithFile:@"grossini.png"]; 
     player.position = ccp(player.contentSize.width/2, windowSize.height/2); 

     [self addChild:player z:0]; 
     //eSprite = [[enemy alloc]init]; //<-- see item 1    
     //[self addChild:eSprite];  
    } 

    return self; 
} 

Ceci est mon dossier de mise en œuvre de ma deuxième classe:

#import "enemy.h" 

#import "gameScreen.h" 
@implementation enemy 
-(id)init 
{ 
    if ((self = [super init])) 
    { 
     CGSize windowSize = [[CCDirector sharedDirector] winSize]; 

     CCSprite *enemySprite = [CCSprite spriteWithFile:@"grossinis_sister1.png" ]; 
     enemySprite.position = ccp(windowSize.width/2, windowSize.height/2); 

     [self addChild:enemySprite]; 
    } 
    return self; 
} 
@end 
+0

Il semble que vous ayez quelques malentendus conceptuels sur la façon de structurer une application iPhone. Google "tutoriel jeu iPhone" et je suis sûr que vous trouverez quelque chose à votre niveau qui vous montrera la bonne façon de faire les choses. En outre, votre question est posée si vaguement qu'il n'y a aucun moyen de fournir une solution puisque vous n'offrez aucun exemple de code ou même une idée des classes que vous utilisez. – VictorB

+0

désolé, je vais éditer ma question de manière claire. merci. –

+0

Si vous vouliez inclure des liens d'image, ils ne sont pas venus. – TechZen

Répondre

2

La compréhension de haut niveau dont vous avez besoin est la suivante. Un écran contient 1 ou plusieurs couches qu'une couche contient des sprites.

Créez donc un écran, puis ajoutez-y un calque et ajoutez les images-objets au calque que vous avez créé. Bien sûr, on peut avoir de nombreux écrans et un écran peut se composer de plusieurs couches. Mais dans un jeu de démonstration simple, créez 1 écran, 1 couche et ajoutez des sprites à cette couche. Voir le lien pour plus de détails http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:basic_concepts.

0

Je ne connais pas Cocos2d mais le schéma normal est de avoir un objet qui posséderait à la fois un écran de jeu et des sprites ennemis et gérer les deux.

Questions connexes