本文整理汇总了C++中WorldModel::getTeammateNearestToBall方法的典型用法代码示例。如果您正苦于以下问题:C++ WorldModel::getTeammateNearestToBall方法的具体用法?C++ WorldModel::getTeammateNearestToBall怎么用?C++ WorldModel::getTeammateNearestToBall使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WorldModel
的用法示例。
在下文中一共展示了WorldModel::getTeammateNearestToBall方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PredictPlayerObject
/*!
*/
void
PredictState::init( const WorldModel & wm )
{
//
// initialize world
//
M_world = &wm;
//
// initialize spend_time
//
M_spend_time = 0;
//
// initialize ball pos & vel
//
M_ball.assign( wm.ball().pos(), wm.ball().vel() );
//
// initialize self_unum
//
M_self_unum = wm.self().unum();
//
// initialize ball holder
//
const AbstractPlayerObject * h = wm.getTeammateNearestToBall( VALID_PLAYER_THRESHOLD );
if ( h
&& wm.ball().pos().dist2( h->pos() ) < wm.ball().pos().dist2( wm.self().pos() ) )
{
M_ball_holder_unum = h->unum();
}
else
{
M_ball_holder_unum = wm.self().unum();
}
//
// initialize all teammates
//
M_our_players.reserve( 11 );
for ( int n = 1; n <= 11; ++n )
{
PredictPlayerObject::Ptr ptr;
if ( n == M_self_unum )
{
ptr = PredictPlayerObject::Ptr( new PredictPlayerObject( wm.self() ) );
}
else
{
const AbstractPlayerObject * t = wm.ourPlayer( n );
if ( t )
{
ptr = PredictPlayerObject::Ptr( new PredictPlayerObject( *t ) );
}
else
{
ptr = PredictPlayerObject::Ptr( new PredictPlayerObject() );
}
}
M_our_players.push_back( ptr );
#ifndef STRICT_LINE_UPDATE
if ( ptr->isValid()
&& M_our_offense_player_line_x < ptr->pos().x )
{
M_our_offense_player_line_x = ptr->pos().x;
}
#endif
}
updateLines();
}