在cocos2d中默认禁用消除锯齿

问题描述:

我在cocos2d中制作了一个游戏,它使用了“老派”风格的图形,我不希望精灵以任何方式被反锯齿。我可以使用[[sprite texture] setAliasTexParameters]来禁用抗锯齿功能,但是我需要为每个精灵都做到这一点,并且会混淆代码。默认情况下有没有办法在全球范围内执行此操作?在cocos2d中默认禁用消除锯齿

默认情况下,您可以编辑CCTexture2D代码为setAliasTexParameters,但这意味着对cocos2d的更新将非常快速令人头疼。
当我需要这些时我做了什么,我写了一个函数来为我创建纹理,并且每个文件都调用setAliasTexParameters

+0

我最终只是让一个工厂方法,但它似乎有点傻不能够很容易地设置此。好吧。 –

您可以通过减少像素格式来获得相同的效果。

[CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA4444];

如果不是,您可以创建一个工厂,在纹理对象实例化时设置setAliasTexParameters,从而减少代码混乱。

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];