Search code examples
cocos2d-iphoneantialiasingblurry

How to enable setAliasTexParameters for CCMenuItem with Cocos2D


I'm having really hard time with my pixelated 2D game. I'm using Cocos2D framework and the menu is driving me insane. I can change the setAliasTexParameters parameter with Sprites, but not for CCMenuItemImage.

I believe it is possible with CCMenuItemSprite, but I red you can't set it straight with that either and I can't seem to even get the menu work with CCMenuItem Sprites. It works nicely with CCMenuItemImages thought.

Here's the blurry buttons: http://cl.ly/0i1V3Y0e3u2k1t102H2a

For some unknown reason the left arrow button is sharp. I tried to change achor points, positions and paddings by 1 and 0.5 pixels but it didn't help. All the button sizes are even numbers.

This is my code for one of the MenuItems:

CCMenuItemImage *buttonMoveL = [CCMenuItemImage itemFromNormalImage:@"buttonMoveLeft.png" selectedImage:@"buttonMoveLeft2.png" block:^(id sender) {
        // Do something 
        }
    }];

And this is the Menu itself:

ActionsMenu = [CCMenu menuWithItems: buttonAttack, buttonMoveL, buttonMoveR, buttonDefend, nil];
    ActionsMenu.position = ccp(240, 38);
    [ActionsMenu alignItemsHorizontallyWithPadding:8];

All help is really much appreciated!


Solution

  • I got it working by using sprites in the menus. Here's my solution:

    CCSprite *spriteDefend1 = [CCSprite spriteWithSpriteFrameName:@"buttonDefend1.png"];
        CCSprite *spriteDefend2 = [CCSprite spriteWithSpriteFrameName:@"buttonDefend2.png"];
        CCMenuItemImage *buttonDefend = [CCMenuItemSprite itemFromNormalSprite:spriteDefend1 selectedSprite:spriteDefend2 block:^(id sender) {
            // Do something cool
            }
        }];