如何设置CCNode <ccrgbaprotocol>的AliasTexParameters?</ccrgbaprotocol>

时间:2012-03-23 23:06:51

标签: objective-c cocos2d-iphone

我已使用this resource为我的Cocos2D项目成功实现了滑块。

问题是我使用像素艺术制作游戏,所以我通常使用[sprite.texture setAliasTexParameters];使它们看起来很清晰。我只是无法弄清楚如何使用这个示例代码。

This就是滑块的样子。

我像这样创建滑块:

self.musicSlider = [CCMenuItemSlider itemFromTrackImage: @"slider_bar.png" knobImage: @"slider_knob.png" target:self selector: @selector(onMusicSlide:)];

我相信这里是您需要从提到的示例.m文件中看到的所有代码:

+(id) itemFromTrackImage: (NSString*)value knobImage:(NSString*) value2 {
return [[[self alloc] initFromTrackImage:value knobImage:value2 target:nil selector:nil] autorelease];
}

+(id) itemFromTrackImage: (NSString*)value knobImage:(NSString*) value2 target:(id) t selector:(SEL) s {
return [[[self alloc] initFromTrackImage:value knobImage:value2 target: t selector: s] autorelease];
}

-(id) initFromTrackImage: (NSString *)trkImage
           knobImage: (NSString *)knbImage
              target: (id)target
            selector: (SEL)selector
{
if( (self=[super initWithTarget:target selector:selector]) ) {
    self.trackImage     = [CCSprite spriteWithFile: trkImage];
    self.knobImage      = [CCSprite spriteWithFile: knbImage];

    // Content size of the track is our reference
    // Knob must lie within
    [self setContentSize: trackImage_.contentSize];
    [self addChild: knobImage_ z:2];

    isVertical  = (self.contentSize.height > self.contentSize.width);
    self.minValue   = 0.0f;
    self.maxValue   = 100.0f;
    self.value  = 50.0f;
    }
return self;
}

精灵在.h文件中声明为CCNode<CCRGBAProtocol>,我无法将.texture置于其后。

非常感谢您提供所有帮助,如果您需要更多规格,请询问。

1 个答案:

答案 0 :(得分:0)

我通过更改代码使其工作,因此它使用精灵表而不是单个图像。

我改变了这个:

self.trackImage     = [CCSprite spriteWithFile: trkImage];

对此:

self.trackImage     = [CCSprite spriteWithSpriteFrameName: trkImage];

我以为我昨天在问之前尝试了这个,但我想我太累了,做了一些愚蠢的错误。