iPhone上的Cocos2d:使用在单独的类文件中定义的精灵

时间:2010-03-13 09:18:26

标签: iphone-sdk-3.0 cocos2d-iphone

我正在尝试在同一个屏幕上绘制两个精灵。我在两个单独的类文件中定义了两个sprite对象。

  1. 如果我注释掉两行(请参阅下面的“第1项”注释),我会在左侧显示[背景图像[background2.jpg]并带有精灵[grossini.png]。
  2. 如果我取消注释这两行,我就不会得到(gameScreen.m)的背景图像和精灵。我只得到(enemy.m)中定义的精灵[grossinis_sister1.png]。
  3. 但我需要的是一个[backgroundimage [background2.jpg]],sprite [grossini.png]和sprite [grossinis_sister1.png]。
  4. 这是我第一堂课的实施档案:

    #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;
    }
    

    这是我的第二堂课的实施档案:

    #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
    

2 个答案:

答案 0 :(得分:2)

您需要的高层次理解就是这个。一个屏幕包含一层或多层,一层包含精灵。

因此,创建一个屏幕,然后向其中添加一个图层,并将精灵添加到您创建的图层中。当然,可以有许多屏幕,屏幕可以包含许多层。但是在一个简单的演示游戏中,创建1个屏幕,1个图层,并为该图层添加精灵。

有关详细信息,请参阅此链接http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:basic_concepts

答案 1 :(得分:0)

我对Cocos2d不熟悉,但正常的模式是拥有一个既拥有游戏屏幕又拥有敌人精灵并同时管理它们的对象。