/** * 色を移動させて返す。 * @param rgba0 * @param rgba1 * @param blend * @return */ static Color moveColor(const Color now, const Color target, const uint8_t offset) { Color result; result.tag.r = targetMove(now.tag.r, target.tag.r, offset); result.tag.g = targetMove(now.tag.g, target.tag.g, offset); result.tag.b = targetMove(now.tag.b, target.tag.b, offset); result.tag.a = targetMove(now.tag.a, target.tag.a, offset); return result; }
//déplacement selon l'etat de mouvement courant void Bee::move(sf::Time dt) { switch(moveMode_) { case MoveMode::Rest: { changeEnergy(-restloss_); break; } case MoveMode::Random: { randomMove(dt); changeEnergy(-moveloss_); break; } case MoveMode::Targeted: { targetMove(dt,target_); changeEnergy(-moveloss_); break; } } }
void Board::targetMove() { int x = rand()%(1280-(int)_target.getSize().x)+1; int y = rand()%(720-(int)_target.getSize().y)+1; if (checkDistance(x, y) < mindistance && score == 0 || checkDistance(x, y) < mindistance) { targetMove(); } _target.setPosition(x, y); redraw(); }
void Board::check() { if (_snaek.getPosition().x <= 0 || _snaek.getPosition().x >= 1280 || _snaek.getPosition().y <= 0 || _snaek.getPosition().y >= 720) { dir = 4; score = 0; _snaek.setPosition(1, 1); targetMove(); } int dis = 0; dis = abs( sqrt( pow(_snaek.getPosition().x - _target.getPosition().x, 2) + pow(_snaek.getPosition().y - _target.getPosition().y, 2))); dis -= _snaek.getSize().x/2; dis -= _target.getSize().x/2; if (dis<=0) { score+=1; targetMove(); redraw(); } }
void BossBullet::update(float dt){ if(m_count == 0){ if(m_targetPosition.x == 1000){ }else{ c = (atan2(m_thisPosition.x - m_targetPosition.x,m_thisPosition.y - m_targetPosition.y)*180/M_PI); } if(m_isrota){ this->setRotation(c); } } targetMove(c); if (m_Hp <= 0) { m_active = false; } m_count++; }
Board::Board() { _mainWindow.create(sf::VideoMode(1280, 720), "snaek", sf::Style::Titlebar | sf::Style::Close); score = 0; dir = 3; if (!f.loadFromFile(fontdir+"verdana.ttf")) exit(1); _snaek.setSize(sf::Vector2f(20,20)); _snaek.setFillColor(sf::Color(255,0,0)); targetMove(); _target.setSize(sf::Vector2f(20,20)); _target.setFillColor(sf::Color(25,50,100)); _target.setOutlineColor(sf::Color(200,50,100)); _target.setOutlineThickness(2); redraw(); }