è¿ç¯è®°å½äºä¸¤ä¸ªæ§ä»¶ç使ç¨æµç¨ï¼ImageView å Slideã
ImageView
1ãé¦å
ï¼å¨Cocos Studioå建ä¸ä¸ªå为"SpriteTest"ç项ç®ãç¶åå°éè¦çèµæºå¯¼å
¥å°é¡¹ç®ä¸ï¼æ导å
¥ä¸å¼ å¾çï¼ä¹å°±æ¯æ们æçæçboyï¼girlï¼girl_3ãï¼é½è¯´ä¸è§å½¢æ¯æ稳åºçï¼é£ä¹ä¸è§æå¢ï¼ï¼ï¼æåå°å建好ç项ç®å¯¼åºå°Cocos2d-x项ç®çResourcesç®å½ä¸ã
2ãæå¼Cocos2d-xå·¥ç¨ï¼æ·»å ä¸é¢å¯¼è¿æ¥ç.jsonæ件ï¼ä»£ç å¦ä¸ï¼
cocos2d::ui::Widget* image_sp = GUIReader::getInstance()->widgetFromJsonFile("SpriteTest_1.json");//读åjsoné
ç½®æ件
this->addChild(image_sp,2);
ä¹åè¿è¡ä¸ç¨åºï¼æ©ï¼ä¸ä¸ªä¸»è§é½æ¾ç¤ºåºæ¥ï¼æ²¡å¤å¤§é®é¢ã
è¿éè¦ç¹åçä¸ç¹æ¯ï¼å¨Cocos2d-xä¸æç模æå¨çªå£å¤§å°ä¸º960*640ï¼èCocos Studio项ç®ä¸æ设置ççªå£å¤§å°ä¸º480*320ï¼è¿æ ·ç¨åºè·èµ·æ¥åä¼åç°image_spæ¾ç¤ºçä½ç½®å¤äºå·¦ä¸æ¹åç¹çä½ç½®ã
3ãæè§å¾image_spæ¾å¨å·¦ä¸è§å¤ªå§å±å®äºï¼æ以æè¦å°å®å¾å³ä¸è§ç§»å¨ä¸ã代ç å¦ä¸ï¼
image_sp->setPosition(Point(300,200));
æ©ï¼è¿è¡åæç¶ç§»å¨è¿å»äºï¼è¿æ ·çæ¥Widgetä¹æ²¡ä»ä¹äºä¸èµ·çåãæè¿å®æºç éççè¿æä»ä¹ã
4ãæ¥ä¸æ¥æè¦åç¬ååºboyæ¥ç©ç©ãå¯æ¯ï¼æä¹åå¢ï¼é¾éä¹æ¯ç¨Spriteåï¼è¦ç¥éè¿å¯æ¯Cocos Studioåãçµæºä¸å¨ï¼Menuæ¯ç¨Button代æ¿ï¼é£ä¹Spriteåºè¯¥æ¯ç¨Image代æ¿å§ï¼èµ¶ç´§æ²ä»£ç è¯ä¸ï¼è¿æ²¡æ²å®æç»äºååºè¿æ¥ï¼åç¹åï¼
æåè¿æ¯å°Testéçä¸ä»£ç æç¥éæ¯ç¨ImageViewã
ImageView* boy = static_cast<ImageView*>(Helper::seekWidgetByName(image_sp,"boy"));
boy->setPosition(Point(240,200));
æ©ï¼è·ä¸ä¸æ²¡æé®é¢ã
5ãä¸é¢è¿ImageViewçæºç éççãçå®æºç ï¼æç¶ï¼æè¿ä¹å è¡ï¼æ²¡é¾åº¦åï¼æå 个éç¹çAPIçå§ã
static ImageView* create();//类似Spriteçcreate()
static ImageView* create(const std::string& imageFileName, TextureResType texType = UI_TEX_TYPE_LOCAL);//åä¸
void loadTexture(const std::string& fileName,TextureResType texType = UI_TEX_TYPE_LOCAL);//类似SpriteçinitWithFile()ã
没å¥å¥½è¯´çï¼æ¢æ±¤ä¸æ¢è¯ãå¯ä¸ä¸åçå°æ¹å°±æ¯TextureRestTypeè¿è´§ï¼å®åºè¯¥æ¯å¼è¯»å纹ççç±»åï¼æ以ä¸ä¸¤ç§ï¼
typedef enum
{
UI_TEX_TYPE_LOCAL = 0,
UI_TEX_TYPE_UI_TEX_TYPE_LOCALPLIST = 1
}TextureResType;
//UI_TEX_TYPE_LOCALæ¯ç´æ¥è¯»åèµæºç®å½ä¸çå¾çï¼è¿ä¹æ¯å建åå§åImageViewçé»è®¤æ¹å¼ï¼
//UI_TEX_TYPE_UI_TEX_TYPE_LOCALPLIST åºè¯¥æ¯è¯»åplistæ件ã
6ãæåå°±æ¯è·³è¿cocostudioï¼ç´æ¥ç¨ImageViewå建个对象æ¥è¯è¯ï¼è¿éæå
ç¨Spriteå建ä¸ä¸ªå¯¹è±¡ï¼çæ¯å¦å¯ä»¥å è½½å°image_spä¸ï¼äºå®è¯ææ¯å¯ä»¥çãæåç代ç ï¼æä¸ä¸ªboyï¼
ImageView* boy = static_cast<ImageView*>(Helper::seekWidgetByName(image_sp,"boy")); //ç¨image_spä¸æå
boy->setPosition(Point(240,200));
auto boy_cx = Sprite::create("boy.png");//ç¨Spriteå建
boy_cx->setPosition(Point(200,100));
image_sp->addChild(boy_cx,2);
auto boy_cc = ImageView::create("boy.png");//ç¨boy_ccå建
boy_cc->setPosition(Point(300,100));
image_sp->addChild(boy_cc,2);
----------------------------------------------------------------------------------------------------------------------------
Slider
æ¥ä¸æ¥å¼å§æä¸sliderï¼ä¹å°±æ¯Cocos2d-xä¸çControlSliderã
1ãå¨Cocos Stuidoä¸å建ä¸ä¸ªå·¥ç¨ãç¶åå°slideræå°åºæ¯ä¸ï¼å¨å±æ§è®¾ç½®éæå°±æ¹äºä¸ªnameï¼å
¶ä»é½é»è®¤ãå 为ç¨çé½æ¯ç³»ç»èªå¸¦çé£äºèµæºå¾çï¼æ以å¨Cocos2d-xä¸æ¾ç¤ºçææé常çä¸å好ã
2ãå¨Cocos2d-xä¸å¯¼å
¥sliderç.jsonæ件ï¼ç¶åå è½½å°åºæ¯ä¸æ¥ã代ç å¦ä¸ï¼
cocos2d::ui::Widget* slideUI = GUIReader::getInstance()->widgetFromJsonFile("SlideUI/SlideUI_1.json");
this->addChild(slideUI,2);
3ãåç¬æååºslideè¿ä¸ªæ§ä»¶ï¼ç¶å对å®åä¸äºç®åçæä½ï¼å¦setPositionã
Slider* slide = static_cast<Slider*>(Helper::seekWidgetByName(slideUI,"slide"));
slide->setPosition(Point(500,200));<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">
å
¶å®æ¯ç¯é½æè¿ä¸æ¥çåå æ¯å 为ææ³äºè§£sliderè¿ä¸ªæ§ä»¶å¨Cocos2d-xä¸çç±»åå«ä»ä¹ãä¾å¦ProgressBarå¨Cocos2d-xä¸çç±»åå°±å«ï¼
LoadingBarã
4ãä¸é¢çä¸Slideçæºç ï¼
//å建Slideçæ¹å¼æ¯è¾ç¹å«ï¼å 为å®æ²¡æä¸ä¸ªAPIæ¯ç´æ¥å¨createä¸å è½½èµæºç
static Slider* create();
//æä¸é¢å 个å è½½èµæºçæ¹å¼ï¼
//a å è½½èæ¯æ¡,èæ¯æ¡ç¥éä¸ï¼å°±æ¯è¿åº¦ä¸º0æ¶ï¼æ´ä¸ªè¿åº¦æ¡æ¾ç¤ºçèæ¯å¾ç
void loadBarTexture(const std::string& fileName,TextureResType texType = UI_TEX_TYPE_LOCAL);
//b å è½½ææï¼ä¹å°±æ¯å¨æ»å¨æ¡ä¸æ»æ¥æ»å»çé£ä¸ªæå
void loadSlidBallTextures(const std::string& normal,//æªè¢«è§¦æ¸æ¾ç¤ºçå¾ç
const std::string& pressed,//触æ¸åæ¾ç¤ºçå¾ç
const std::string& disabled,//ç¦æ¢è§¦æ¸æ¾ç¤ºçå¾ç
TextureResType texType = UI_TEX_TYPE_LOCAL);
//ä¸é¢è¿ä¸ªAPIæ¯å¯ä»¥ä¸æ¬¡æ§çå è½½ä¸å¼ å¾çï¼ä¸é¢è¿ä¸ä¸ªæ¯åç¬å è½½çï¼
void loadSlidBallTextureNormal(const std::string& normal,TextureResType texType = UI_TEX_TYPE_LOCAL);
void loadSlidBallTexturePressed(const std::string& pressed,TextureResType texType = UI_TEX_TYPE_LOCAL);
void loadSlidBallTextureDisabled(const std::string& disabled,TextureResType texType = UI_TEX_TYPE_LOCAL);
//TextureResTypeè¿è´§å¨ä¹åçç¬è®°éææå°è¿ï¼UI_TEX_TYPE_LOCAL 就表示å è½½ç纹çå¾çæ¯ç´æ¥ä»Resourcesç®å½ä¸å è½½ï¼è
//UI_TEX_TYPE_PLIST表示å è½½ç纹çæ¯éè¿plistæ¥å è½½ã
//c å è½½è¿åº¦æ¡
void loadProgressBarTexture(const std::string& fileName, TextureResType texType = UI_TEX_TYPE_LOCAL);
void setPercent(int percent);//设置è¿åº¦
int getPercent();//读åè¿åº¦
void addEventListenerSlider(Ref* target,SEL_SlidPercentChangedEvent selector);//æ·»å äºä»¶åè°
5ãä¸é¢ç®åçå建ä¸ä¸ªSliderï¼
auto m_slide = Slider::create();
m_slide->loadBarTexture("SlideUI/sliderTrack.png");
m_slide->loadSlidBallTextures("SlideUI/sliderThumb.png","SlideUI/sliderThumb.png","");
m_slide->loadProgressBarTexture("SlideUI/sliderProgress.png");
m_slide->setPosition(Point(200,200));
m_slide->setPercent(50);
m_slide->addEventListenerSlider(this,sliderpercentchangedselector(HelloWorld::sliderCallback));//æ·»å åè°å½æ°
this->addChild(m_slide,3);
//ä¸é¢çä¸åè°å½æ°ç声æï¼
void sliderCallback(Ref* sender,SliderEventType type);
//è¿å
¥SliderEventTypeçä¸å®é½æåªäºåæ°ï¼
typedef enum
{
SLIDER_PERCENTCHANGED
}SliderEventType;
//好å§ï¼å°±ä¸ä¸ªï¼é£å°±æ¯æ¯å½slideçè¿åº¦åçååæ¶é½ä¼è·³å
¥å°åè°å½æ°ä¸ã
//ä¸é¢çä¸åè°å½æ°çå®ç°ï¼
void HelloWorld::sliderCallback(Ref* sender,SliderEventType type)
{
switch (type)
{
case SLIDER_PERCENTCHANGED:
CCLOG("slide percent change");
break;
}
}
æ©ï¼ä¹å°±è¿æ ·å§ã
6ãå°ç»ã
Slider个人æè§è¿æ¯æ²¡æCocos2d-xåè£
çControlSlider好ç¨ï¼APIä¹æ²¡å¤å°ãæ¯ç«ControlSliderè¿æ设置Sliderçæ大å¼ï¼æå°å¼ï¼å
许æ»å¨çæ大å¼çã
转载ï¼ä»
ä¾åèï¼ç¥ä½ æå¿«ï¼æ»¡æ请é纳ã
温馨提示:答案为网友推荐,仅供参考