【发布时间】:2011-08-25 02:08:07
【问题描述】:
我正在 cocos2d 中制作一个使用“老式”风格图形的游戏,并且我不希望精灵以任何方式进行抗锯齿处理。我可以使用[[sprite texture] setAliasTexParameters] 来禁用抗锯齿,但我需要对每个精灵都这样做,这会使代码混乱。有没有办法默认全局做到这一点?
【问题讨论】:
标签: iphone cocos2d-iphone antialiasing
我正在 cocos2d 中制作一个使用“老式”风格图形的游戏,并且我不希望精灵以任何方式进行抗锯齿处理。我可以使用[[sprite texture] setAliasTexParameters] 来禁用抗锯齿,但我需要对每个精灵都这样做,这会使代码混乱。有没有办法默认全局做到这一点?
【问题讨论】:
标签: iphone cocos2d-iphone antialiasing
你可以默认将CCTexture2D代码编辑为setAliasTexParameters,但这意味着cocos2d的更新会非常快。
当我需要这个时我做了什么,我写了一个函数来为我创建纹理,每个函数都调用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];
【讨论】:
你可以通过减少像素格式来获得同样的效果。
[CCTexture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA4444];
如果没有,您可以创建一个工厂,在实例化纹理对象时设置 setAliasTexParameters,从而减少代码混乱。
【讨论】: