我找不到从给定的.plist文件而不是普通纹理加载按钮图像的方法。 使用
Button::create("normal_image.png", "selected_image.png", "disabled_image.png");
//or
button->loadTextures("normal_image.png", "selected_image.png", "disabled_image.png");
搜索png而不使用缓存中的精灵文件。
我只想放一个精灵而不是一个png。 Button
课程运作良好,这是我实际问题的最佳解决方案。
答案 0 :(得分:4)
您应该传递TextureResType
Button::create("normal_image.png", "selected_image.png", "disabled_image.png", TextureResType::PLIST);
或
button->loadTextures("normal_image.png", "selected_image.png", "disabled_image.png", TextureResType::PLIST);
答案 1 :(得分:0)
确定首先创建按钮之前,您需要确保加载plist,否则它将无法工作。好的,现在让我们创建一个简单的按钮。
让我们加载plist文件。
"AppDelegate.cpp"
SpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("yourSprites.plist");
"PauseLayer.h"
#ifndef LEVELCHOOSER_H_
#define LEVELCHOOSER_H_
#include "cocos2d.h"
#include "Popup.h"
using namespace cocos2d;
class LevelChooser:public cocos2d::Layer
{
Size s;
Popup *popup;
cocos2d::MenuItemSprite *pauseButton;
public:
virtual bool init();
virtual void showPopup(cocos2d::Ref* pSender);
virtual void closePopup(cocos2d::Ref* pSender);
virtual void playGame(cocos2d::Ref* pSender);
virtual void playTimeGame(cocos2d::Ref* pSender);
CREATE_FUNC(LevelChooser);
};
#endif /* LEVELCHOOSER_H_ */
然后加载按钮。 在源文件中。
"LevelChooser.cpp"
bool LevelChoser()
{
Size s = Director::getInstance->getWinSize();
pauseButton = MenuItemSprite::create(
Sprite::createWithSpriteFrameName("ButtonPauseNormal.png"), "ButtonPauseActive.png", this,
menu_selector(LevelChooser::showPopup));
pauseButton->setPosition(s.width/2,s.heigh/2);
return true;
}
void LevelChooser::showPopup(cocos2d::Ref* pSender)
{
//do Something
}
我希望你能理解这一点,只需撰写评论。
答案 2 :(得分:0)
您可以使用' CCControlButton'
如:
// Creates a 9-slice sprite with an sprite frame name.
Scale9Sprite * img = Scale9Sprite::createWithSpriteFrame("hello.png");
Label * label = Label::create();
ControlButton * startBtn = ControlButton::create(label,img);
startBtn->setAdjustBackgroundImage(false);
addChild(startBtn);
我认为9片最好~~