button位置不改变

Layout* uiLayout = dynamic_cast<Layout*>(cocostudio::GUIReader::getInstance()->widgetFromJsonFile(“SoundSet/SoundSet_1.json”));
Button* music_button = dynamic_cast <Button *>(uiLayout->getChildByName( “Button_music”));

music_button->addTouchEventListener( this , toucheventselector (SoundSetScene ::musicSetting));
music_button->setPosition(Point(music_button->getPositionX()-209,music_button->getPositionY()));
this->addChild(uiLayout);

运行后 music_button的x的位置没改变 还是原来的位置

这没人知道怎么搞吗 卡了老半天啦~

那显示的位置是减去209后的还是没减的?

显示没减的

建议你把这两个值:(music_button->getPositionX()-209,music_button->getPositionY())分别打印出来看看,是否正确。:14:

恩 但我有个问题是 eclipse看不到代码里的log

在logcat中查看cocos2d-x输出的日志只需要在过滤器中吧tag设置为:cocos2d-x debug info即可:14::14:

位置写错了,应该写在 by Log Tag的地方 :7:

恩 谢谢啦~~~~~~~~~~~~~

log中显示music_button的x确实减了209 但是显示的button位置没变

我具体代码是这样的 关键看红色字体

bool SoundSetScene::init()
{
Layer* uiLayer = Layer::create();
GUIReader* guireader = cocostudio::GUIReader::getInstance();
Widget* widget = guireader->widgetFromJsonFile(“SoundSet/SoundSet_1.json”);
Layout* uiLayout =(Layout*)widget;
uiLayer->addChild(uiLayout);
this->addChild(uiLayer);

Button* back_button = dynamic_cast <Button *>(uiLayout->getChildByName( "Button_back"));
  back_button->addTouchEventListener( this , toucheventselector (SoundSetScene ::menuCloseCallback_back));

//初始化声音设置按钮位置
bool b_PlayMusic=UserDefault::getInstance()->getBoolForKey("playMusic");
Button* music_button = dynamic_cast <Button*>(uiLayout->getChildByName("Button_music"));        
  music_button->addTouchEventListener( this , toucheventselector (SoundSetScene ::musicSetting));

  if(!b_PlayMusic)
  {
      music_button->setPosition(Point(music_button->getPositionX()-209,music_button->getPositionY()));//这边调试的时候确实进到了这里,但button的位置没变,没有左移209        log("%lf",music_button->getPositionX());
    log("%lf",music_button->getPositionY());
    log("off");
  }else{
      music_button->setPosition(Point(music_button->getPositionX(),music_button->getPositionY()));
    log("%lf",music_button->getPositionX());
    log("%lf",music_button->getPositionY());
    log("on");
  }




Button* sound_button = dynamic_cast <Button *>(uiLayout->getChildByName("Button_effect"));
 sound_button->addTouchEventListener( this , toucheventselector (SoundSetScene ::soundeffectSetting));



return true;

}

void SoundSetScene::musicSetting(Object* pSender,EventTouch::EventCode type){
Button* musicButton=static_cast<Button*>(pSender);
bool bPlayMusic=UserDefault::getInstance()->getBoolForKey(“playMusic”);
if (type == EventTouch::EventCode::ENDED) {
if(bPlayMusic)
{
//停止背景音乐
SimpleAudioEngine::sharedEngine()->stopBackgroundMusic(true);
musicButton->setPosition(Point(musicButton->getPositionX()-209,musicButton->getPositionY()));//这边运行的效果,button确实左移了209 UserDefault::getInstance()->setBoolForKey(“playMusic”,false);
}else
{
//播放背景音乐
SimpleAudioEngine::sharedEngine()->playBackgroundMusic(“bg_music/danlansebodian_BG.mp3”,true);
musicButton->setPosition(Point(musicButton->getPositionX()+209,musicButton->getPositionY()));
UserDefault::getInstance()->setBoolForKey(“playMusic”,true);
}
}
UserDefault::getInstance()->flush();
}