一个cocos2d-x问题,求高手。

我把菜单的图片都用TexturePack做成“UpMenu.plist”这种格式。

然后问题来了,menuitem怎么创建的时候使用这种格式的图片呢?

我用的是MenuItemImage

这个类创建都是用.png直接的图片格式,好像不支持压缩的文件

我用plist这种文件创建过sprite:
类似这样:auto monster = Sprite::createWithSpriteFrameName(fileName->getCString());

但是menuitem好像没用通过“SpriteFrameName”直接创建的接口。

求高手指导

看了下源码,其实可以这样实现:
先创建一个空的MenuItemImage,再用精灵帧设置normal,select,disabled的图片。
如:
CCMenuItemImage* testMenuItem = CCMenuItemImage::create("","",this,menu_selector(MenuLayer::testMenuItemCallback));
testMenuItem->setPosition(ccp(210,115));
menu->addChild(testMenuItem);

CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("test.plist");

testMenuItem->setNormalSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("normal.png"));
    testMenuItem->setSelectedSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("select.png"));
    testMenuItem->setDisabledSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("disabled.png"));

。。。现在还有人用MenuItem?

根据plist文件创建3个sprite,然后用MenuItemSprite也是可以的

谢谢,我再没看到你回复的时候,最后也是这么使用的。感谢

那你用什么做菜单?

这个方式没试过,不过看样子也是可以的,感谢

cocostudio编辑,里面对应的按钮是UIButton,虽然也不怎么好用,不过胜在方便

我个人觉得cocostudio编辑器做的太差了,几乎做不了什么事,最后还是要用代码实现。