本文整理汇总了C++中bwapi::UnitType::dimensionDown方法的典型用法代码示例。如果您正苦于以下问题:C++ UnitType::dimensionDown方法的具体用法?C++ UnitType::dimensionDown怎么用?C++ UnitType::dimensionDown使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bwapi::UnitType
的用法示例。
在下文中一共展示了UnitType::dimensionDown方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: drawCommandStatus
void UnitCommandManager::drawCommandStatus(BWAPI::UnitInterface* unit)
{
BWAPI::UnitType type = unit->getType();
int width = type.dimensionRight();
int height = type.dimensionDown()/6;
int x1 = unit->getPosition().x - width;
int x2 = unit->getPosition().y + width;
int y1 = unit->getPosition().y - height;
int y2 = unit->getPosition().y + height;
}
示例2: RenderUnit
void Display::RenderUnit(const Unit & unit)
{
static const float3 factionColors[12] =
{
float3(1,0,0), float3(0,1,0), float3(0,1,0.5f), float3(0.5f,0,1),
float3(1,0.5f,0), float3(0.5f,0.25f,0), float3(1,1,1), float3(1,1,0),
float3(0,0,0), float3(0,0,0), float3(0,0,0), float3(0,1,1)
};
glColor4f(1, 1, 1, 1);
const int healthBoxHeight = 4;
const Position pos(unit.currentPosition(state.getTime()));
const BWAPI::UnitType type(unit.type());
const int tx(textureSizes[type.getID()].x()/2);
const int ty(textureSizes[type.getID()].y()/2);
// unit box will be a square due to having square textures
const int x0(pos.x() - type.dimensionUp());
const int x1(pos.x() + type.dimensionDown());
const int y0(pos.y() - type.dimensionUp());
const int y1(pos.y() + type.dimensionDown());
const int tx0(pos.x() - tx);
const int tx1(pos.x() + tx);
const int ty0(pos.y() - ty);
const int ty1(pos.y() + ty);
// if the unit can move right now draw its move
if (unit.previousActionTime() == state.getTime())
{
const UnitAction & move = unit.previousAction();
if (move.type() == UnitActionTypes::MOVE)
{
glColor4f(1, 1, 1, 0.75);
glBegin(GL_LINES);
glVertex2i(pos.x(), pos.y());
glVertex2i(unit.pos().x(), unit.pos().y());
glEnd( );
}
else if (move.type() == UnitActionTypes::ATTACK)
{
const Unit & target(state.getUnit(state.getEnemy(unit.player()), move.index()));
const Position targetPos(target.currentPosition(state.getTime()));
glColor4f(factionColors[unit.player()].x, factionColors[unit.player()].y, factionColors[unit.player()].z, 0.75);
glBegin(GL_LINES);
glVertex2i(pos.x(), pos.y());
glVertex2i(targetPos.x(), targetPos.y());
glEnd( );
/*glColor4f(1.0, 0.0, 0.0, 0.25);
glBegin(GL_QUADS);
glVertex2i(targetPos.x()-type.dimensionUp(),targetPos.y()-type.dimensionUp());
glVertex2i(targetPos.x()-type.dimensionUp(),targetPos.y()+type.dimensionUp());
glVertex2i(targetPos.x()+type.dimensionUp(),targetPos.y()+type.dimensionUp());
glVertex2i(targetPos.x()+type.dimensionUp(),targetPos.y()-type.dimensionUp());
glEnd();*/
}
else if (move.type() == UnitActionTypes::HEAL)
{
const Unit & target(state.getUnit(unit.player(), move.index()));
const Position targetPos(target.currentPosition(state.getTime()));
glColor4f(factionColors[unit.player()].x, factionColors[unit.player()].y, factionColors[unit.player()].z, 0.75);
glBegin(GL_LINES);
glVertex2i(pos.x(), pos.y());
glVertex2i(targetPos.x(), targetPos.y());
glEnd( );
/*glColor4f(0.0, 1.0, 0.0, 0.25);
glBegin(GL_QUADS);
glVertex2i(targetPos.x()-type.dimensionUp(),targetPos.y()-type.dimensionUp());
glVertex2i(targetPos.x()-type.dimensionUp(),targetPos.y()+type.dimensionUp());
glVertex2i(targetPos.x()+type.dimensionUp(),targetPos.y()+type.dimensionUp());
glVertex2i(targetPos.x()+type.dimensionUp(),targetPos.y()-type.dimensionUp());
glEnd();*/
}
}
// draw the unit's texture
glEnable( GL_TEXTURE_2D );
glColor4f(1, 1, 1, 0.75);
glBindTexture( GL_TEXTURE_2D, unit.type().getID() );
glBegin( GL_QUADS );
glTexCoord3d(0.0,0.0,.5); glVertex2i(tx0,ty0);
glTexCoord3d(1.0,0.0,.5); glVertex2i(tx1,ty0);
glTexCoord3d(1.0,1.0,.5); glVertex2i(tx1,ty1);
glTexCoord3d(0.0,1.0,.5); glVertex2i(tx0,ty1);
glEnd();
glDisable( GL_TEXTURE_2D );
if (unit.player() == Players::Player_None)
{
return;
}
// draw the unit HP box
//.........这里部分代码省略.........
示例3:
// constructor for units to construct basic units, sets some things automatically
Unit::Unit(const BWAPI::UnitType unitType, const IDType & playerID, const Position & pos)
: _unitType (unitType)
, _range (PlayerWeapon(&PlayerProperties::Get(playerID), unitType.groundWeapon()).GetMaxRange() + unitType.dimensionDown() + 5/* + Constants::Range_Addition*/)
//, _range (unitType.groundWeapon().maxRange() + Constants::Range_Addition)
, _position (pos)
, _unitID (0)
, _playerID (playerID)
, _currentHP (maxHP())
, _currentshield (maxshield())
, _currentEnergy ((unitType == BWAPI::UnitTypes::Terran_Medic) ||(unitType == BWAPI::UnitTypes::Protoss_High_Templar) ? Constants::Starting_Energy : 0)
, _timeCanMove (0)
, _timeCanAttack (0)
, _timeCanCast (0)
, _previousActionTime (0)
, _previousPosition (pos)
, _prevCurrentPosTime (0)
, _prevCurrentPos (pos)
, _isloaded (false)
{
System::checkSupportedUnitType(unitType);
}