?? player.cpp
字號:
return 10; case 5: return 8; case 6: return 5; case 7: return 4; case 8: return 3; case 9: return 2; case 10: return 6; case 11: return 7; } return uniNum;}unsigned Player::postNumToUniNum(unsigned postNum){ switch (postNum) { case 2: return 9; case 3: return 8; case 4: return 7; case 5: return 6; case 6: return 10; case 7: return 11; case 8: return 5; case 9: return 3; case 10: return 4; case 11: return 2; } return postNum;}void Player::updateByHear(float x, float y, float velMag, float velDir, const Body &body){ LOG << "Player::updateByHear" << endl; position.setAsCartesian(x, y); velocity.setAsPolar(velMag, velDir); posDeviation = velocity.getMagnitude() / 2; validPosDeviation = 0; velDeviation = 0; // Setting vectors absVector.setByPoints(body.getPos(), position); bodyVector = absVector; bodyVector.rotate(-body.getBodyDir()); headVector = absVector; headVector.rotate(-body.getHeadDir());}void Player::updateByRadar(float magnitude, float direction, const Body &body, const Ball &ball){// LOG << "Player::updateByRadar" << endl; Vector vec; vec.setAsPolar(magnitude, direction); position = ball.getPos() + vec; posDeviation = 1.00; // ? validPosDeviation = 0; velDeviation = 0; // Setting vectors absVector.setByPoints(body.getPos(), position); bodyVector = absVector; bodyVector.rotate(-body.getBodyDir()); headVector = absVector; headVector.rotate(-body.getHeadDir());}// Heterogeneous functionsvoid Player::setType(int typeArg, const Param &playerType){ type = typeArg; // heterogeneous items staminaIncMax = playerType["stamina_inc_max"].asFloat(); inertiaMoment = playerType["inertia_moment"].asFloat(); dashPowerRate = playerType["dash_power_rate"].asFloat(); kickableMargin = playerType["kickable_margin"].asFloat(); kickRand = playerType["kick_rand"].asFloat(); extraStamina = playerType["extra_stamina"].asFloat(); effortMax = playerType["effort_max"].asFloat(); effortMin = playerType["effort_min"].asFloat(); // public items speedMax = playerType["player_speed_max"].asFloat(); decay = playerType["player_decay"].asFloat(); size = playerType["player_size"].asFloat();}float Player::getStaminaIncMax() const{ return staminaIncMax;}float Player::getInertiaMoment() const{ return inertiaMoment;}float Player::getDashPowerRate() const{ return dashPowerRate;}float Player::getKickableMargin() const{ return kickableMargin;}float Player::getKickRand() const{ return kickRand;}float Player::getExtraStamina() const{ return extraStamina;}float Player::getEffortMax() const{ return effortMax;}float Player::getEffortMin() const{ return effortMin;}// Getting functionsbool Player::isGoalie() const{ return goalieFlag;}bool Player::isTackling() const{ return tacklingFlag;}float Player::getStamina() const{ return stamina;}float Player::getBodyDir() const{ return bodyDir;}float Player::getHeadDir() const{ return headDir;}float Player::getPointingDir() const{ return pointingDir;}float Player::getRelativeBodyDir() const{ return relativeBodyDir;}float Player::getRelativeHeadDir() const{ return relativeHeadDir;}float Player::getRelativePointingDir() const{ return relativePointingDir;}unsigned Player::getType() const{ return type;}unsigned Player::getUniNum() const{ return uniNum;}unsigned Player::getPostNum() const{ return postNum;}TeamId Player::getTeamId() const{ return teamId;}PlayerModel Player::getModel() const{ return model;}float Player::getStaminaMax() const{ return staminaMax;}float Player::getEffortDecThr() const{ return effortDecThr;}float Player::getRecoverDecThr() const{ return recoverDecThr;}float Player::getMaxNeckAng() const{ return maxNeckAng;}float Player::getMinNeckAng() const{ return minNeckAng;}float Player::getMaxNeckMoment() const{ return maxNeckMoment;}float Player::getMinNeckMoment() const{ return minNeckMoment;}float Player::getCatchableAreaL() const{ return catchableAreaL;}float Player::getCatchableAreaW() const{ return catchableAreaW;}unsigned Player::getDashExpires() const{ return dashExpires;}// Setting functionsvoid Player::setGoalie(bool goalieFlagArg){ goalieFlag = goalieFlagArg;}void Player::setTackling(bool tacklingFlagArg){ tacklingFlag = tacklingFlagArg;}void Player::setBodyDir(float bodyDirArg){ bodyDir = bodyDirArg;}void Player::setHeadDir(float headDirArg){ headDir = headDirArg;}void Player::setPointingDir(float pointingDirArg){ pointingDir = pointingDirArg;}void Player::setRelativeBodyDir(float relativeBodyDirArg){ relativeBodyDir = relativeBodyDirArg;}void Player::setRelativeHeadDir(float relativeHeadDirArg){ relativeHeadDir = relativeHeadDirArg;}void Player::setRelativePointingDir(float relativePointingDirArg){ relativePointingDir = relativePointingDirArg;}void Player::setType(unsigned typeArg){ type = typeArg;}void Player::setUniNum(unsigned uniNumArg){ uniNum = uniNumArg; postNum = uniNumToPostNum(uniNum);}void Player::setTeamId(TeamId teamIdArg){ teamId = teamIdArg;}void Player::setModel(PlayerModel modelArg){ model = modelArg;}void Player::parseFullState(TeamId teamIdArg, unsigned uniNumArg, bool isGoalieArg, const SExpression &exp, unsigned curTime){ SExpAtomic *at; float x, y; seeDistChange = NOVALUE; seeDirChange = -NOVALUE; seeDirection = -NOVALUE; teamId = teamIdArg; uniNum = uniNumArg; at = dynamic_cast<SExpAtomic *>(exp[1]); assert(at); x = at->asFloat(); at = dynamic_cast<SExpAtomic *>(exp[2]); assert(at); y = at->asFloat() * (-1); position.setAsCartesian(x, y); at = dynamic_cast<SExpAtomic *>(exp[3]); assert(at); x = at->asFloat(); at = dynamic_cast<SExpAtomic *>(exp[4]); assert(at); y = at->asFloat() * (-1); velocity.setAsCartesian(x, y); at = dynamic_cast<SExpAtomic *>(exp[5]); assert(at); bodyDir = at->asFloat() * (-1); at = dynamic_cast<SExpAtomic *>(exp[6]); assert(at); headDir = at->asFloat() * (-1); tacklingFlag = false; pointingDir = 0; if (exp.size() >= 8) { at = dynamic_cast<SExpAtomic *>(exp[7]); assert(at); if (at->toString() == "t") { tacklingFlag = true; } else { pointingDir = at->asFloat() * (-1); } } if (exp.size() >= 9) { at = dynamic_cast<SExpAtomic *>(exp[8]); assert(at); if (at->toString() == "t") { tacklingFlag = true; } } goalieFlag = isGoalieArg; posDeviation = 0; validPosDeviation = 0; model = PLM_FULL; seeTime = curTime;}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -