在cocos2d中默认禁用消除锯齿
问题描述:
我在cocos2d中制作了一个游戏,它使用了“老派”风格的图形,我不希望精灵以任何方式被反锯齿。我可以使用[[sprite texture] setAliasTexParameters]
来禁用抗锯齿功能,但是我需要为每个精灵都做到这一点,并且会混淆代码。默认情况下有没有办法在全球范围内执行此操作?在cocos2d中默认禁用消除锯齿
答
默认情况下,您可以编辑CCTexture2D
代码为setAliasTexParameters
,但这意味着对cocos2d的更新将非常快速令人头疼。
当我需要这些时我做了什么,我写了一个函数来为我创建纹理,并且每个文件都调用setAliasTexParameters
。
答
您可以通过减少像素格式来获得相同的效果。
[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];
我最终只是让一个工厂方法,但它似乎有点傻不能够很容易地设置此。好吧。 –