首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向场景中添加CCSprite的子类

向场景中添加CCSprite的子类
EN

Stack Overflow用户
提问于 2012-02-24 14:58:14
回答 2查看 1.6K关注 0票数 0

我最近决定将我的sprite子类化,但我有点不知道如何将它们添加到场景中。目前,我已经使用...的新File>Cocos2d>CCNode>Subclass创建了我的CCSprite子类。CCSprite。然后,我在Sprite.h文件中创建了我的sprite:

代码语言:javascript
复制
@interface Mos : CCSprite {
    CCSprite *mos;
}

完成后,在Sprite.m中,我编写了以下代码:

代码语言:javascript
复制
@implementation Mos

-(id) init
{
    if( (self=[super init])) {

        mos = [CCSprite spriteWithFile:@"sprite_mos.png"];

    }
    return self;
}

我想知道的是如何将这个精灵添加到我的游戏场景中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-24 16:17:53

下面是如何像documentation所说的那样正确地将CCSprite子类化:

代码语言:javascript
复制
@interface Mos : CCSprite {
    // remove the line CCSprite *mos;
}

@implementation Mos

// You probably don't need to override this method if you will not add other code inside of it
-(id) initWithTexture:(CCTexture2D*)texture rect:(CGRect)rect
{
   if( (self=[super initWithTexture:texture rect:rect]))
   {

   }
   return self;
}

+ (id)sprite
{
    return [Mos spriteWithFile:@"sprite_mos.png"];
}

@end

然后,在您的代码中,您可以正常使用Mos:

代码语言:javascript
复制
Mos *mos = [Mos sprite];
[scene addChild:mos];
票数 2
EN

Stack Overflow用户

发布于 2012-02-24 15:43:25

与添加CCSprites和其他类的方式相同。

代码语言:javascript
复制
Mos *newMos = [[Mos alloc] init];
// set coordinates and other properties
[scene addChild:newMos];
[newMos release];

编辑:

代码语言:javascript
复制
@interface Mos : CCSprite {
    // some member variables go here
}

@implementation Mos

-(id)init
{
    CCTexture2D *texture = [[CCTextureCache sharedTextureCache] addImage:@"sprite_mos.png"];
    if( texture ) {
        CGRect rect = CGRectZero;
        rect.size = texture.contentSize;
        // set members to some values
        return [self initWithTexture:texture rect:rect];
    }
    [self release];
    return nil;
}

然后在你的场景类中

代码语言:javascript
复制
// ...
Mos *obj = [[Mos alloc] init];
// set position, etc
[scene addChild:obj];
[obj release];
// ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9426682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档