MyML GameEngine::Action(MyML& ge,MyML &player, string team, bool invert_pos) { invert_positions=invert_pos; if(invert_pos){ //hier müssen jetzt alle Positionen aus ge vom anderen Team invertiert werden!!! //außerdem der Ball for(int i=0;i<INT(ge.A("Team1.Player.size"));i++){ MyML& player=ge.E("Team1.Player").E(STR(i)); player.E("Pos",invert(player.E("Pos"))); player.E("InitPos",invert(player.E("InitPos"))); } ge.E("Ball.Pos",invert(ge.E("Ball.Pos"))); } MyML pa=PlayerAction(ge,player); pa.AddA("id",player.A("id")); pa.AddE("OnPos",INV(player.E("Pos"))); return pa; }
void ControllerPlayer::ccdbut() { PlayerAction("stoplistener"); attack->setEnabled(false); skill->setEnabled(false); bigskill->setEnabled(false); shangxian->setEnabled(false); }
void ControllerPlayer::obscdbut(float dt) { PlayerAction("startlistener"); if (!attackisCD) { attack->setEnabled(true); } if (!skillisCD) { skill->setEnabled(true); } if (!sxisCD) { shangxian->setEnabled(true); } }
void ControllerPlayer::sxEvent(Ref*, TouchEventType type) { switch (type) { case TouchEventType::TOUCH_EVENT_BEGAN: { PlayerAction("stop"); cdImg(3, "500303001.png", "CD4.png", shangxian, 0.74, shangxiancd); break; } case TouchEventType::TOUCH_EVENT_ENDED: { break; } } }
void ControllerPlayer::osxcdbut(float dt) { PlayerAction("startlistener"); if (!attackisCD) { attack->setEnabled(true); } if (!skillisCD) { skill->setEnabled(true); } if (!bigisCD) { bigskill->setEnabled(true); } }
void ControllerPlayer::cdImg(float time, std::string name1, std::string name2, Button* but, float scale, MyEnum type) { CallFunc* cding; CallFunc* cded; ccdbut(); switch (type) { case attackcd: { cding = CallFunc::create([&](){attackisCD = true; }); cded = CallFunc::create([&](){attackisCD = false; }); this->scheduleOnce(schedule_selector(ControllerPlayer::oscdbut), 1.0f); PlayerAction(StringUtils::toString(attackType)); this->scheduleOnce(schedule_selector(ControllerPlayer::Cdskill), 0.8f); break; } case skillcd: { cding = CallFunc::create([&](){skillisCD = true; }); cded = CallFunc::create([&](){skillisCD = false; }); this->scheduleOnce(schedule_selector(ControllerPlayer::oacdbut), 1.2f); PlayerAction(StringUtils::toString(skillType)); this->scheduleOnce(schedule_selector(ControllerPlayer::Cdskill), 1.2f); break; } case bigskillcd: { cding = CallFunc::create([&](){ bigisCD = true; }); cded = CallFunc::create([&](){ bigisCD = false; }); this->scheduleOnce(schedule_selector(ControllerPlayer::obscdbut), 2.0f); PlayerAction(StringUtils::toString(skillType)); this->scheduleOnce(schedule_selector(ControllerPlayer::Cdskill), 1.2f); break; } case shangxiancd: { cding = CallFunc::create([&](){ sxisCD = true; }); cded = CallFunc::create([&](){ sxisCD = false; }); this->scheduleOnce(schedule_selector(ControllerPlayer::osxcdbut), 0.6f); m_player->sxskill(); this->scheduleOnce(schedule_selector(ControllerPlayer::Cdskill), 0.6f); break; } } SpriteFrameCache* frameCache = SpriteFrameCache::getInstance(); frameCache->addSpriteFramesWithFile("fight0.plist", "fight0.png"); Point thepoint = but->getPosition(); auto cds = Sprite::createWithSpriteFrameName(name2); cds->setPosition(thepoint); cds->setScale(scale, scale); addChild(cds, 3); auto funk = [cds, but]() { cds->setVisible(false); but->setEnabled(true); }; CallFunc* func = CallFunc::create(funk); auto cd = ProgressTimer::create(Sprite::createWithSpriteFrameName(name1)); cd->setType(ProgressTimer::Type::RADIAL); cd->setPosition(thepoint); cd->setScale(0.74, 0.74); auto to1 = Sequence::create(cding, ProgressTo::create(time, 100), ProgressTo::create(0, 0), func, cded, nullptr); cd->runAction(to1); addChild(cd, 4); }
void ControllerPlayer::Cdskill(float dt) { PlayerAction(StringUtils::toString(standType)); PlayerAction("stop"); }