classbasicplayer.html
来自「仿真人工智能是指用人工的方法和技术」· HTML 代码 · 共 758 行 · 第 1/5 页
HTML
758 行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>BasicPlayer class Reference</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body bgcolor="#ffffff"><!-- Generated by Doxygen 1.2.12 --><center><a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <a class="qindex" href="globals.html">File Members</a> </center><hr><h1>BasicPlayer Class Reference</h1><code>#include <<a class="el" href="BasicPlayer_8h-source.html">BasicPlayer.h</a>></code><p>Inheritance diagram for BasicPlayer:<p><center><img src="classBasicPlayer__inherit__graph.gif" border="0" usemap="#BasicPlayer__inherit__map" alt="Inheritance graph"></center><map name="BasicPlayer__inherit__map"><area href="classPlayer.html" shape="rect" coords="30,81,75,99" alt=""></map><center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center>Collaboration diagram for BasicPlayer:<p><center><img src="classBasicPlayer__coll__graph.gif" border="0" usemap="#BasicPlayer__coll__map" alt="Collaboration graph"></center><map name="BasicPlayer__coll__map"><area href="classPlayerSettings.html" shape="rect" coords="25,36,115,55" alt=""><area href="classWorldModel.html" shape="rect" coords="193,100,275,119" alt=""><area href="classActHandler.html" shape="rect" coords="361,131,435,150" alt=""><area href="classServerSettings.html" shape="rect" coords="25,188,115,207" alt=""></map><center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center><a href="classBasicPlayer-members.html">List of all members.</a><table border=0 cellpadding=0 cellspacing=0><tr><td colspan=2><br><h2>Protected Methods</h2></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b0">alignNeckWithBody</a> ()</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b1">turnBodyToPoint</a> (<a class="el" href="classVecPosition.html">VecPosition</a> pos, int iPos=1)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b2">turnBackToPoint</a> (<a class="el" href="classVecPosition.html">VecPosition</a> pos, int iPos=1)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b3">turnNeckToPoint</a> (<a class="el" href="classVecPosition.html">VecPosition</a> pos, <a class="el" href="classSoccerCommand.html">SoccerCommand</a> com)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b4">searchBall</a> ()</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b5">dashToPoint</a> (<a class="el" href="classVecPosition.html">VecPosition</a> pos)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b6">freezeBall</a> ()</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b7">kickBallCloseToBody</a> (<a class="el" href="Geometry_8h.html#a2">AngDeg</a> ang)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b8">accelerateBallToVelocity</a> (<a class="el" href="classVecPosition.html">VecPosition</a> vel)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b9">catchBall</a> ()</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b10">communicate</a> (char *str)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b11">teleportToPos</a> (<a class="el" href="classVecPosition.html">VecPosition</a> pos)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b12">turnBodyToObject</a> (<a class="el" href="SoccerTypes_8h.html#a240">ObjectT</a> o)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b13">turnNeckToObject</a> (<a class="el" href="SoccerTypes_8h.html#a240">ObjectT</a> o, <a class="el" href="classSoccerCommand.html">SoccerCommand</a> com)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b14">moveToPos</a> (<a class="el" href="classVecPosition.html">VecPosition</a> posTo, <a class="el" href="Geometry_8h.html#a2">AngDeg</a> angWhenToTurn, double dDistDashBack=0.0, bool bMoveBack=false)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b15">interceptClose</a> ()</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b16">interceptCloseGoalie</a> ()</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b17">kickTo</a> (<a class="el" href="classVecPosition.html">VecPosition</a> posTarget, double dEndSpeed)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b18">turnWithBallTo</a> (<a class="el" href="Geometry_8h.html#a2">AngDeg</a> ang, <a class="el" href="Geometry_8h.html#a2">AngDeg</a> angKickThr, double dFreezeThr)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b19">moveToPosAlongLine</a> (<a class="el" href="classVecPosition.html">VecPosition</a> pos, <a class="el" href="Geometry_8h.html#a2">AngDeg</a> ang, double dDistThr, int iSign, <a class="el" href="Geometry_8h.html#a2">AngDeg</a> angThr, <a class="el" href="Geometry_8h.html#a2">AngDeg</a> angCorr)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b20">intercept</a> (bool bIsGoalie)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b21">dribble</a> (<a class="el" href="Geometry_8h.html#a2">AngDeg</a> ang, <a class="el" href="SoccerTypes_8h.html#a253">DribbleT</a> d)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b22">directPass</a> (<a class="el" href="SoccerTypes_8h.html#a240">ObjectT</a> o, <a class="el" href="SoccerTypes_8h.html#a254">PassT</a> passType)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b23">leadingPass</a> (<a class="el" href="SoccerTypes_8h.html#a240">ObjectT</a> o, double dDist)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b24">throughPass</a> (<a class="el" href="SoccerTypes_8h.html#a240">ObjectT</a> o, <a class="el" href="classVecPosition.html">VecPosition</a> posEnd, <a class="el" href="Geometry_8h.html#a2">AngDeg</a> *angMax=NULL)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b25">outplayOpponent</a> (<a class="el" href="SoccerTypes_8h.html#a240">ObjectT</a> o, <a class="el" href="classVecPosition.html">VecPosition</a> pos, <a class="el" href="classVecPosition.html">VecPosition</a> *posTo)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b26">clearBall</a> (<a class="el" href="SoccerTypes_8h.html#a255">ClearBallT</a> type, <a class="el" href="SoccerTypes_8h.html#a246">SideT</a> s=SIDE_ILLEGAL, <a class="el" href="Geometry_8h.html#a2">AngDeg</a> *angMax=NULL)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b27">markOpponent</a> (<a class="el" href="SoccerTypes_8h.html#a240">ObjectT</a> o, double dDist, <a class="el" href="SoccerTypes_8h.html#a252">MarkT</a> mark)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classSoccerCommand.html">SoccerCommand</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b28">defendGoalLine</a> (double dDist)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classVecPosition.html">VecPosition</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b29">getInterceptionPointBall</a> (int *iCyclesBall, bool isGoalie)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classVecPosition.html">VecPosition</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b30">getShootPositionOnLine</a> (<a class="el" href="classVecPosition.html">VecPosition</a> p1, <a class="el" href="classVecPosition.html">VecPosition</a> p2, <a class="el" href="Geometry_8h.html#a2">AngDeg</a> *angLargest=NULL)</td></tr><tr><td nowrap align=right valign=top>double </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b31">getEndSpeedForPass</a> (<a class="el" href="SoccerTypes_8h.html#a240">ObjectT</a> o, <a class="el" href="classVecPosition.html">VecPosition</a> posPass)</td></tr><tr><td nowrap align=right valign=top><a class="el" href="classVecPosition.html">VecPosition</a> </td><td valign=bottom><a class="el" href="classBasicPlayer.html#b32">getMarkingPosition</a> (<a class="el" href="SoccerTypes_8h.html#a240">ObjectT</a> o, double dDist, <a class="el" href="SoccerTypes_8h.html#a252">MarkT</a> mark)</td></tr><tr><td colspan=2><br><h2>Protected Attributes</h2></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classActHandler.html">ActHandler</a> * </td><td valign=bottom><a class="el" href="classBasicPlayer.html#n0">ACT</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classWorldModel.html">WorldModel</a> * </td><td valign=bottom><a class="el" href="classBasicPlayer.html#n1">WM</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classServerSettings.html">ServerSettings</a> * </td><td valign=bottom><a class="el" href="classBasicPlayer.html#n2">SS</a></td></tr><tr><td nowrap align=right valign=top><a class="el" href="classPlayerSettings.html">PlayerSettings</a> * </td><td valign=bottom><a class="el" href="classBasicPlayer.html#n3">PS</a></td></tr></table><hr><a name="_details"></a><h2>Detailed Description</h2>This class defines the skills that can be used by an agent. No functionality is available that chooses when to execute which skill, since this is done in the <a class="el" href="classPlayer.html">Player</a> class. The <a class="el" href="classWorldModel.html">WorldModel</a> is used to determine the way in which the skills are performed. <p><p>Definition at line <a class="el" href="BasicPlayer_8h-source.html#l00054">54</a> of file <a class="el" href="BasicPlayer_8h-source.html">BasicPlayer.h</a>.<hr><h2>Member Function Documentation</h2><a name="b8" doxytag="BasicPlayer::accelerateBallToVelocity"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classSoccerCommand.html">SoccerCommand</a> BasicPlayer::accelerateBallToVelocity </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top"><a class="el" href="classVecPosition.html">VecPosition</a> </td> <td class="mdname1" valign="top" nowrap> <em>velDes</em> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>This skill enables an agent to accelerate the ball in such a way that it gets a certain velocity after the kick. It receives the desired velocity 'vecDes' as its only argument and returns a kick command that causes the ball to be accelerated to this velocity. If the power that must be supplied to the kick command to get the desired result does not exceed the maximum kick power then the desired velocity can be realized with a single kick. The kick direction should then be equal to the direction of the acceleration vector relative to the agent's global body angle. However, if the desired velocity is too great or if the current ball velocity is too high then the required acceleration cannot be realized with a single kick. In this case, the ball is kicked in such a way that the acceleration vector has the maximum possible length and a direction that aligns the resulting ball movement with 'vecDes'. This means that after the kick the ball will move in the same direction as 'vecDes' but at a lower speed. To this end the acceleration vector has to compensate for the current ball velocity in the `wrong' direction (y-component). <dl compact><dt><b>Parameters: </b><dd><table border=0 cellspacing=2 cellpadding=0><tr><td valign=top><em>velDes</em> </td><td>desired ball velocity </td></tr></table></dl><dl compact><dt><b>Returns: </b><dd><a class="el" href="classSoccerCommand.html">SoccerCommand</a> that accelerates the ball to 'vecDes' </dl><p>Definition at line <a class="el" href="BasicPlayer_8C-source.html#l00314">314</a> of file <a class="el" href="BasicPlayer_8C-source.html">BasicPlayer.C</a>.<p>References <a class="el" href="Geometry_8h-source.html#l00052">AngDeg</a>, <a class="el" href="Geometry_8C-source.html#l00169">asinDeg</a>(), <a class="el" href="namespace_3globalScope_4.html#a247a186">CMD_KICK</a>, <a class="el" href="WorldModelHighLevel_8C-source.html#l00994">WorldModel::getActualKickPowerRate</a>(), <a class="el" href="WorldModel_8C-source.html#l00533">WorldModel::getAgentGlobalBodyAngle</a>(), <a class="el" href="ServerSettings_8C-source.html#l01073">ServerSettings::getBallAccelMax</a>(), <a class="el" href="Geometry_8C-source.html#l00625">VecPosition::getDirection</a>(), <a class="el" href="WorldModel_8C-source.html#l00689">WorldModel::getGlobalVelocity</a>(), <a class="el" href="WorldModelHighLevel_8C-source.html#l01018">WorldModel::getKickPowerForSpeed</a>(), <a class="el" href="Geometry_8C-source.html#l00614">VecPosition::getMagnitude</a>(), <a class="el" href="ServerSettings_8C-source.html#l01302">ServerSettings::getMaxPower</a>(), <a class="el" href="Geometry_8C-source.html#l00558">VecPosition::getY</a>(), <a class="el" href="Geometry_8C-source.html#l00875">VecPosition::normalizeAngle</a>(), <a class="el" href="namespace_3globalScope_4.html#a240a24">OBJECT_BALL</a>, <a class="el" href="Geometry_8C-source.html#l00783">VecPosition::rotate</a>(), <a class="el" href="BasicPlayer_8h-source.html#l00059">SS</a>, and <a class="el" href="BasicPlayer_8h-source.html#l00058">WM</a>.<p>Referenced by <a class="el" href="BasicPlayer_8C-source.html#l00775">kickTo</a>(). </td> </tr></table><a name="b0" doxytag="BasicPlayer::alignNeckWithBody"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top"> <a class="el" href="classSoccerCommand.html">SoccerCommand</a> BasicPlayer::alignNeckWithBody </td> <td class="md" valign="top">( </td> <td class="mdname1" valign="top" nowrap> </td> <td class="md" valign="top">) </td> <td class="md" nowrap><code> [protected]</code></td> </tr> </table> </td> </tr></table><table cellspacing=5 cellpadding=0 border=0> <tr> <td> </td> <td><p>This skill enables an agent to align his neck with his body. It returns a turn neck command that takes the angle of the agent's body relative to his neck as its only argument. <dl compact><dt><b>Returns: </b><dd><a class="el" href="classSoccerCommand.html">SoccerCommand</a> turn_neck command that aligns neck with body </dl><p>Definition at line <a class="el" href="BasicPlayer_8C-source.html#l00052">52</a> of file <a class="el" href="BasicPlayer_8C-source.html">BasicPlayer.C</a>.<p>References <a class="el" href="namespace_3globalScope_4.html#a247a183">CMD_TURNNECK</a>, <a class="el" href="WorldModel_8C-source.html#l00519">WorldModel::getAgentBodyAngleRelToNeck</a>(), and <a class="el" href="BasicPlayer_8h-source.html#l00058">WM</a>.<p>Referenced by <a class="el" href="Player_8C-source.html#l00182">Player::deMeer5</a>(), <a class="el" href="Player_8C-source.html#l00278">Player::deMeer5_goalie</a>(), and <a class="el" href="BasicPlayer_8C-source.html#l00871">turnWithBallTo</a>(). </td> </tr></table><a name="b9" doxytag="BasicPlayer::catchBall"></a><p><table width="100%" cellpadding="2" cellspacing="0" border="0"> <tr> <td class="md"> <table cellpadding="0" cellspacing="0" border="0">
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?