void User::updateBuffsEffect() { setMultiFightDelay(1); setMultiSpeed(1); for(auto buff:_buffs) { auto effectMap = buff->getEffectMap(); for(auto pair:effectMap) { auto type = pair.first; auto value = pair.second; if(type == "moveSpeed") { setMultiSpeed(value.asFloat()); } else if(type == "fightDelay") { setMultiFightDelay(value.asFloat()); } } } auto gameScene = dynamic_cast<GameScene*>(Director::sharedDirector()->getRunningScene()); if(gameScene != nullptr) { auto hud = gameScene->getHud(); hud->updateBuffList(); } }
bool HudPanel::init() { _joyStickLayOut = static_cast<Layout*>(Helper::seekWidgetByName(_root, "Panel_joyStickLayOut")); _joyStickPanel = JoyStickPanel::create("joyStick"); _joyStickPanel->setPosition(Vec2(400,72)); addChild(_joyStickPanel); _joyStickPanel->setDieRadius(100);//设置死亡半径(外圈) _joyStickPanel->setFailRadius(10);//设置失效半径(內圈) //_stick->setAutoPosition(true); Detect::shareDetect()->setJoyStick(_joyStickPanel); _popPanel = PopPanel::getInstance(); _bubbleLabel = BubbleLabel::create(); addChild(_bubbleLabel); _layerColor = LayerColor::create(Color4B(0,0,0,255)); _layerColor->setContentSize(Director::getInstance()->getWinSize()); _layerColor->setOpacity(0); addChild(_layerColor); _popPanel = PopPanel::getInstance(); _popPanel->reset(); addChild(_popPanel); ChatManager::getInstance()->setChatPanel(_popPanel->chatPanel); //_listener = EventListenerCustom::create("hud", CC_CALLBACK_1(HudPanel::onTrigger, this)); _listener = EventListenerCustom::create("hud", [=](EventCustom *event){onTrigger(event);}); _eventDispatcher->addEventListenerWithSceneGraphPriority(_listener, this); for(auto node:_buttons->getChildren()) { auto button = static_cast<Button*>(node); button->addTouchEventListener(CC_CALLBACK_2(HudPanel::onButtonClicked, this)); } auto action1 = ScaleBy::create(0.15,1.5,1.5,1.0); _stress1 = Sequence::create(action1,action1->reverse(),nullptr); _stress1->retain(); _plotBlock = false; _buffList = static_cast<ListView*>(Helper::seekWidgetByName(_root, "ListView_buffs")); updateBuffList(); _buffList->addEventListener((ui::ListView::ccListViewCallback)CC_CALLBACK_2(HudPanel::selectedBuffEvent, this)); return true; }