⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 player.cpp

📁 2006年世界杯足球赛2D仿真组第16名的源代码。在此代码上随便改改
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		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;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -