void PingPong::loseGame(int id) { GameMode::Inst().mode = GameMode::GM_WAIT; _informer->setScale(1.0f); _informer->setOpacity(255); _informer->setString(_players[id]->getName() + " Is Lose"); this->runAction(Sequence::create( DelayTime::create(4.f), CallFunc::create([=] { waitStart(); }), nullptr)); }
void operator()() { waitStart(); // barrier while(active) { value_type * i; while(q.pop(i)) { value_type * e = i+4000; for (value_type * k=i; k!=e; k++) ++hist[*k]; } } }
bool PingPong::init() { if ( !Layer::init()) return false; GameMode::Inst().mode = GameMode::GM_WAIT; _mainBackgroundDN = DrawNode::create(); this->addChild(_mainBackgroundDN); auto screenSize = Director::getInstance()->getWinSize(); // –исуем фон std::array<Vec2, 4> points = { Vec2(0, 0), Vec2(screenSize.width, 0), Vec2(screenSize.width, screenSize.height), Vec2(0, screenSize.height)}; _mainBackgroundDN->drawPolygon(points.data(), points.size(), Color4F(0.1f, 0.1f, 0.1f, 1.0f), 0, Color4F::GREEN); // —оздаем стены for (int i = 0; i < _walls.size(); ++i) { _walls[i] = Wall::create(GlobalValues::cWallWidth, screenSize.height); _walls[i]->setPosition(Vec2( _walls[i]->getWidth() / 2 + i * (screenSize.width - _walls[i]->getWidth()), _walls[i]->getHeight() / 2)); this->addChild(_walls[i]); } // —оздаем Ball(м¤чик) _ball = Ball::create(15.0f); this->addChild(_ball); _ball->setPosition(Vec2(screenSize.width / 2, screenSize.height / 2)); // —оздаем игроков for (unsigned int i = 0; i < _players.size(); ++i) { _players[i] = Player::create(100.f, 25.f); this->addChild(_players[i]); _players[i]->setPosition(Vec2(screenSize.width / 2, 13.5f + i * (screenSize.height - 27) )); _players[i]->setName("Player " + std::to_string(i + 1)); } // Ѕиндим контроллеры helper::PlayerControllerBind(_players[PC_KEYBOARD], ControllerFactory::makeKeyboard()); helper::PlayerControllerBind(_players[PC_MOUSE], ControllerFactory::makeMouse()); // “екстовый информер _informer = Label::create(); _informer->setPosition( screenSize.width / 2, screenSize.height / 2 ); _informer->setColor(Color3B::GREEN); _informer->setSystemFontSize(60.0f); this->addChild(_informer); auto listener = EventListenerKeyboard::create(); listener->onKeyPressed = CC_CALLBACK_1(PingPong::onKeyPressed, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this); scheduleUpdate(); waitStart(); return true; }
int main(int argc, char* argv[]) { ExplorationShared shared; EBehavior behavior(&shared); EBWaitIdle waitStart("Start"); EBWaitIdle waitMotion1("ArmPositioning"); EBWaitIdle waitMotion2("Turn1"); EBWaitIdle waitMotion3("Turn2"); EBWaitIdle waitMotion4("Turn3"); EBWaitIdle waitMotion5("Turn4"); EBWaitIdle waitMotion6("Turn5"); EBWaitIdle waitMotion7("Final pos"); EBWaitIdle waitMotion8("Going back to rest"); EBWaitIdle endState1("end1"); EBWaitIdle endState2("end2"); EBWaitIdle stateInhibitHandTracking("Inhibit hand tracking"); EBWaitIdle stateEnableHandTracking("Enable hand tracking"); EBWaitIdle position1Wait("Position1 done"); EBWaitIdle position2Wait("Position2 done"); EBWaitIdle position3Wait("Position3 done"); EBWaitDeltaT position2Train(6); EBWaitDeltaT position3Train(6); EBWaitDeltaT position4Train(6); EBWaitIdle position2("Waiting arm done"); EBWaitIdle position3("Waiting arm done"); EBWaitIdle position4("Waiting arm done"); EBWaitIdle waitArmAck("Wait armAck"); EBWaitDeltaT dT1(6); EBWaitDeltaT dT2(0.2); EBWaitDeltaT dT3OneSecond(3); EBWaitDeltaT dTHandClosing(0.1); EBWaitDeltaT waitArmSeemsToRest(5); EBBehaviorOutput startTrain(YBVKFTrainStart); EBBehaviorOutput startSequence(YBVKFStart); EBBehaviorOutput stopTrain(YBVKFTrainStop); EBBehaviorOutput stop(YBVKFStop); EBSimpleOutput forceOpen(YBVGraspRflxForceOpen); EBSimpleOutput parkArm(YBVArmForceRestingTrue); // output: enable and disable hand tracking system EBEnableTracker enableHandTracking; EBInhibitTracker inhibitHandTracking; EBOutputCommand cmd1(YBVArmForceNewCmd, YVector(_nJoints, pos1)); EBOutputCommand cmd2(YBVArmForceNewCmd, YVector(_nJoints, pos2)); EBOutputCommand cmd3(YBVArmForceNewCmd, YVector(_nJoints, pos3)); // EBOutputCommand cmd4(YBVArmForceNewCmd, YVector(_nJoints, pos4)); // EBOutputCommand cmd5(YBVArmForceNewCmd, YVector(_nJoints, pos5)); // EBOutputCommand cmd6(YBVArmForceNewCmd, YVector(_nJoints, pos6)); EBOutputCommand cmd7(YBVArmForceNewCmd, YVector(_nJoints, pos7)); EBOutputCommand cmd8(YBVArmForceNewCmd, YVector(_nJoints, pos8)); EBOutputCommand cmd9(YBVArmForceNewCmd, YVector(_nJoints, pos9)); EBOutputCommand cmd10(YBVArmForceNewCmd, YVector(_nJoints, pos10)); EBSimpleInput armDone(YBVArmDone); EBSimpleInput handDone(YBVHandDone); EBSimpleInput start(YBVKFExplorationStart); EBSimpleInput start2(YBVGraspRflxClutch); EBSimpleInput armAck(YBVArmIssuedCmd); EBSimpleInput armNAck(YBVArmIsBusy); behavior.setInitialState(&waitStart); behavior.add(&start, &waitStart, &waitMotion1, &cmd1); behavior.add(&start2, &waitStart, &dTHandClosing, &enableHandTracking); behavior.add(NULL, &dTHandClosing, &waitArmAck, &cmd1); behavior.add(&armAck, &waitArmAck, &stateEnableHandTracking, &startSequence); behavior.add(&armNAck, &waitArmAck, &waitArmSeemsToRest, &inhibitHandTracking); behavior.add(NULL, &waitArmSeemsToRest, &waitStart, &forceOpen); behavior.add(NULL, &stateEnableHandTracking, &waitMotion1, &enableHandTracking); behavior.add(&armDone, &waitMotion1, &dT3OneSecond); // wait some extra time before issueing the startKF signal behavior.add(NULL, &dT3OneSecond, &dT1, &startTrain); // july 21/04 behavior.add(NULL, &dT1, &waitMotion6); behavior.add(NULL, &waitMotion6, &position1Wait, &stopTrain); // position2 behavior.add(NULL, &position1Wait, &position2, &cmd7); behavior.add(&armDone, &position2, &position2Train, &startTrain); behavior.add(NULL, &position2Train, &position2Wait, &stopTrain); //position3 behavior.add(NULL, &position2Wait, &position3, &cmd8); behavior.add(&armDone, &position3, &position3Train, &startTrain); behavior.add(NULL, &position3Train, &position3Wait, &stopTrain); //position 4 behavior.add(NULL, &position3Wait, &position4, &cmd9); behavior.add(&armDone, &position4, &position4Train, &startTrain); behavior.add(NULL, &position4Train, &stateInhibitHandTracking, &stopTrain); behavior.add(NULL, &stateInhibitHandTracking, &dT2); /* behavior.add(NULL, &dT1, &waitMotion2, &cmd2); // behavior.add(&armDone, &waitMotion1, &waitMotion2, &cmd2); behavior.add(&armDone, &waitMotion2, &waitMotion3, &cmd3); behavior.add(&armDone, &waitMotion3, &waitMotion4, &cmd4); behavior.add(&armDone, &waitMotion4, &waitMotion5, &cmd5); behavior.add(&armDone, &waitMotion5, &waitMotion6, &cmd6); behavior.add(&armDone, &waitMotion6, &dT2, &stopKF); */ behavior.add(NULL, &dT2, &waitMotion7, &cmd10); behavior.add(&armDone, &waitMotion7, &waitMotion8, &forceOpen); behavior.add(&handDone, &waitMotion8, &endState1, &parkArm); behavior.add(NULL, &endState1, &endState2, &inhibitHandTracking); behavior.add(NULL, &endState2, &waitStart, &stop); behavior.Begin(); behavior.loop(); return 0; }