Пример #1
0
HomingMissile::HomingMissile(const Position &pos, Player *source)
    : BaseMissile(pos, source),
      targetPos(source->getPosition().getX()+source->mouseX, source->getPosition().getY()+source->mouseY)
{
    sprite = "images/homingmissile.png";
    drawScale = 0.3;
    radius = (images.getImage(sprite.c_str())->getWidth() / 2) * drawScale * 0.5;
    exploding = false;
    acquireTarget();
    sendAdd();
}
void ParticleDemo::setup(){
	targetJoint = acquireTarget();

	//pos = ofPoint(paramsDemo.eCenter.x - (ofGetWidth()/2 + 8 + 10), paramsDemo.eCenter.y - (10 + 8 + 8 + 8)) + randomPointInCircle(paramsDemo.eRad);
	pos = paramsDemo.eCenter + randomPointInCircle(paramsDemo.eRad);
	vel = randomPointInCircle(paramsDemo.velRad);

	time = 0;
	lifeTime = paramsDemo.lifeTime;
	live = true;
	size = paramsDemo.size;
	force = paramsDemo.force;
	tracking = paramsDemo.tracking;
	}
Пример #3
0
/** @brief get the object under the pointer and set as the target
 */
bool Unit::getUnitAtPointer()
{
  const Vector3& pointer_position = Controller->getPointerPos();
  vector<size_t_pair> cell_indexes;
  Game::Arena->getCellIndexesWithinRadius(pointer_position, cell_indexes);

  for (size_t i = 0, for_size = cell_indexes.size(); i < for_size; ++i) {
    list<Corpus*>& CorpusList = Game::Arena->getCorpusCell(cell_indexes[i]);

    // if there are any units in the cell
    for (Corpus* c : CorpusList) {
      if (c->BoundingSphere.contains(pointer_position)) {
        return acquireTarget(c);
      }
    }
  }

  return false;
}
void Samsquamptch::updateCurrent(sf::Time dt, sf::Vector2f target, sf::Vector2f bounds)
{
    acquireTarget(target,bounds);

    m_velocity *= dt.asSeconds()*m_aggressionLevel;

    if(getPosition().y >= m_target.y
            && getPosition().y < m_target.y + m_bounds.y
            && getPosition().x >= m_target.x
            && getPosition().x < m_target.x + m_bounds.y)
    {
        //achieved goal - target acquired
    }
    else
    {
        //work towards goal
        setRotation(toDegree(m_angle) + 90.f);
        move(m_velocity);
        m_rect.setPosition(getPosition());
        m_rect.setRotation(getRotation());
        //std::cout<<"Chasing..."<<std::endl;
    }
}
Пример #5
0
void Brush::setup(bool isActive_Head, bool isActive_Neck, bool isActive_ShoulderL, bool isActive_ShoulderR, bool isActive_ElbowL, bool isActive_ElbowR, bool isActive_HandL, bool isActive_HandR,
			bool isActive_Torso, bool isActive_HipL, bool isActive_HipR, bool isActive_KneeL, bool isActive_KneeR, bool isActive_FootL, bool isActive_FootR){
	
	pos = ofPoint(ofRandom(0, ofGetWidth()), ofRandom(0, ofGetHeight()));

	time = 0;

	switch (targetJoint){
	case 0:
		if(isActive_Head){
			size = param_Head.size_JD;
			speed  = param_Head.speed;
			break;
		}
	case 1:
		if(isActive_Neck){
			size = param_Neck.size_JD;
			speed  = param_Neck.speed;
			break;
		}
	case 2:
		if(isActive_ShoulderL){
			size = param_ShoulderL.size_JD;
			speed  = param_ShoulderL.speed;
			break;
		}
	case 3:
		if(isActive_ShoulderR){
			size = param_ShoulderR.size_JD;
			speed  = param_ShoulderR.speed;
			break;
		}
	case 4:
		if(isActive_ElbowL){
			size = param_ElbowL.size_JD;
			speed  = param_ElbowL.speed;
			break;
		}
	case 5:
		if(isActive_ElbowR){
			size = param_ElbowR.size_JD;
			speed  = param_ElbowR.speed;
			break;
		}
	case 6:
		if(isActive_HandL){
			size = param_HandL.size_JD;
			speed  = param_HandL.speed;
			break;
		}
	case 7:
		if(isActive_HandR){
			size = param_HandR.size_JD;
			speed  = param_HandR.speed;
			break;
		}
	case 8:
		if(isActive_Torso){
			size = param_Torso.size_JD;
			speed  = param_Torso.speed;
			break;
		}
	case 9:
		if(isActive_HipL){
			size = param_HipL.size_JD;
			speed  = param_HipL.speed;
			break;
		}
	case 10:
		if(isActive_HipR){
			size = param_HipR.size_JD;
			speed  = param_HipR.speed;
			break;
		}
	case 11:
		if(isActive_KneeL){
			size = param_KneeL.size_JD;
			speed  = param_KneeL.speed;
			break;
		}
	case 12:
		if(isActive_KneeR){
			size = param_KneeR.size_JD;
			speed  = param_KneeR.speed;
			break;
		}
	case 13:
		if(isActive_FootL){
			size = param_FootL.size_JD;
			speed  = param_FootL.speed;
			break;
		}
	case 14:
		if(isActive_FootR){
			size = param_FootR.size_JD;
			speed  = param_FootR.speed;
			break;
		}
	default:
		break;
	}

	targetJoint = acquireTarget();

}