Отключить сглаживание по умолчанию в cocos2d - PullRequest
0 голосов
/ 25 августа 2011

Я делаю игру в cocos2d, которая использует графику в стиле "старой школы", и я не хочу, чтобы спрайты были сглажены каким-либо образом.Я могу использовать [[sprite texture] setAliasTexParameters], чтобы отключить сглаживание, но мне нужно сделать это для каждого спрайта, и он загромождает код.Есть ли способ сделать это глобально по умолчанию?

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Вы можете отредактировать CCTexture2D код по умолчанию setAliasTexParameters, но это будет означать, что обновления cocos2d будут очень быстрой головной болью.
Что я сделал, когда мне это понадобилось, я написал функцию для создания текстур для меня, и она называлась setAliasTexParameters на каждой.

1 голос
/ 10 мая 2012

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];
0 голосов
/ 25 августа 2011

Вы можете получить тот же эффект, уменьшив формат пикселя.

[CCTexture2D setDefaultAlphaPixelFormat: kTexture2DPixelFormat_RGBA4444];

Если нет, вы можете создать фабрику, которая устанавливает setAliasTexParameters какобъект текстуры создается, уменьшая загромождение кода.

...