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; }
/** @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; } }
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(); }