开发者

Disable anti-aliasing by default in cocos2d

I'm making a game in cocos2d that uses "old-school" style graphics, and I don't want the sprites to be antialiased in any way. I can use [[sprite texture] setAliasTexParameters] to disable th开发者_如何学JAVAe antialiasing, but I need to do that for every sprite, and it clutters the code. Is there any way to do it globally by default?


You can edit CCTexture2D code to setAliasTexParameters by default, but that will mean updates to cocos2d will be a headache really fast.
What I done when I needed this, I wrote a function to create the textures for me and it called setAliasTexParameters on each.


CCTexture2D.m

 - (id) initWithData:(const void*)data pixelFormat:(CCTexture2DPixelFormat)pixelFormat pixelsWide:(NSUInteger)width pixelsHigh:(NSUInteger)height contentSize:(CGSize)size
{
    if((self = [super init])) {
        glPixelStorei(GL_UNPACK_ALIGNMENT,1);
        glGenTextures(1, &name_);
        glBindTexture(GL_TEXTURE_2D, name_);

        [self setAliasTexParameters];


You may be able to get the same effect by reducing the pixel format.

[CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA4444];

If not, you could create a factory that sets the setAliasTexParameters as the texture object is instantiated reducing the code clutter.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜