void doMouseMove(){ if (rect1.getGlobalBounds().contains(sf::Mouse::getPosition(window).x, sf::Mouse::getPosition(window).y)){ if (!sf::Mouse::isButtonPressed(sf::Mouse::Button::Left)) rect1.setFillColor(sf::Color(100,100,100)); } else { rect1.setFillColor(sf::Color(200,200,200)); } if (rect2.getGlobalBounds().contains(sf::Mouse::getPosition(window).x, sf::Mouse::getPosition(window).y)){ if (!sf::Mouse::isButtonPressed(sf::Mouse::Button::Left)) rect2.setFillColor(sf::Color(100,100,100)); } else { rect2.setFillColor(sf::Color(200,200,200)); } if (rect3.getGlobalBounds().contains(sf::Mouse::getPosition(window).x, sf::Mouse::getPosition(window).y)){ if (!sf::Mouse::isButtonPressed(sf::Mouse::Button::Left)) rect3.setFillColor(sf::Color(100,100,100)); } else { rect3.setFillColor(sf::Color(200,200,200)); } if (rect4.getGlobalBounds().contains(sf::Mouse::getPosition(window).x, sf::Mouse::getPosition(window).y)){ if (!sf::Mouse::isButtonPressed(sf::Mouse::Button::Left)) rect4.setFillColor(sf::Color(100,100,100)); } else { rect4.setFillColor(sf::Color(200,200,200)); } }
void init() { this->restart(); // RectangleShapes sf::Vector2f unit(unit_w, unit_h); stone_view = sf::RectangleShape(unit); stone_view.setFillColor(sf::Color(255, 81, 68)); body_view = sf::RectangleShape(unit); body_view.setFillColor(sf::Color(0, 204, 255)); food_view = sf::RectangleShape(unit); food_view.setFillColor(sf::Color(19, 169, 136)); // font & msg if (!font.loadFromFile("Inconsolata-Bold.ttf")) { puts("fonts loading error!"); this->close(); } msg1.setFont(font); msg1.setColor(sf::Color::White); msg1.setCharacterSize(50); msg1.setPosition(80, 100); msg2.setFont(font); msg2.setColor(sf::Color::White); msg2.setCharacterSize(25); msg2.setString("Press <Enter> to Replay"); msg2.setPosition(60, 250); }
bool Tutorial::crossfade(float elapsedTime, sf::RectangleShape& rect1, sf::RectangleShape& rect2) { float temp = alpha1 - elapsedTime * ANIMATION_SPEED; float temp2 = alpha2 + elapsedTime * ANIMATION_SPEED; // std::cout << "color " << static_cast<int>(temp) << std::endl; // std::cout << "color2 " << static_cast<int>(temp2) << std::endl; // ensure high calc times don't screw up the outcome (drag the window for a sec outputs a too high value) // maybe just limit it would be better.. if (temp < alpha1) { alpha1 = temp; alpha2 = temp2; } if (alpha1 < 1) { alpha1 = 0; alpha2 = 255; rect1.setFillColor(sf::Color(255, 255, 255, static_cast<sf::Uint8>(alpha1))); return true; } // disabled because it should not be crossfaded only overlayed //rect1.setFillColor(sf::Color(255, 255, 255, static_cast<sf::Uint8>(alpha1))); rect2.setFillColor(sf::Color(255, 255, 255, static_cast<sf::Uint8>(alpha2))); return false; }
Pong() : gameWindow(sf::VideoMode(600, 480), "Pong") { ball.setFillColor(sf::Color::Cyan); ball.setPosition(100.0, 100.0); ball.setRadius(10.f); p1Paddle.setFillColor(sf::Color::Green); p1Paddle.setPosition(10.0, 100.0); p1Paddle.setSize(sf::Vector2f(10.0, 100.0)); p2Paddle.setFillColor(sf::Color::Red); p2Paddle.setPosition(580.0, 100.0); p2Paddle.setSize(sf::Vector2f(10.0, 100.0)); p1MovingUp = false; p1MovingDown = false; p2MovingUp = false; p2MovingDown = false; ballMovement = sf::Vector2f(ballSpeed, ballSpeed); font.loadFromFile("arial.ttf"); p1ScoreText.setPosition(150, 10); p1ScoreText.setFont(font); p1ScoreText.setString(std::to_string(p1Score)); p1ScoreText.setColor(sf::Color::Red); p1ScoreText.setCharacterSize(24); p2ScoreText.setPosition(450, 10); p2ScoreText.setFont(font); p2ScoreText.setString(std::to_string(p2Score)); p2ScoreText.setColor(sf::Color::Red); p2ScoreText.setCharacterSize(24); }
void WindowCreateThing::init(sf::RenderWindow &window) { rectTitle.setSize(sf::Vector2f(window.getSize().x*0.45, window.getSize().y*0.07)); rectTitle.setPosition(sf::Vector2f(window.getSize().x/2-(rectTitle.getSize().x/2), window.getSize().x/4-(rectTitle.getSize().y/2))); rectTitle.setFillColor(sf::Color(158, 158, 158)); rectTitle.setOutlineColor(sf::Color::Black); rectTitle.setOutlineThickness(1.f); rectMain.setSize(sf::Vector2f(window.getSize().x*0.45,window.getSize().y*0.45)); rectMain.setPosition(sf::Vector2f(rectTitle.getPosition().x, rectTitle.getPosition().y+rectTitle.getSize().y)); rectMain.setFillColor(sf::Color::White); rectMain.setOutlineColor(sf::Color::Black); rectMain.setOutlineThickness(1.f); load(); starting_position = sf::Mouse::getPosition(window); textTitle.setFont(font); textTitle.setString("CreateThings.txt"); textTitle.setCharacterSize(24); textTitle.setColor(sf::Color::White); textTitle.setPosition(sf::Vector2f(rectTitle.getPosition().x+rectTitle.getSize().x*0.3, rectTitle.getPosition().y+rectTitle.getSize().y*0.1)); //textTitle.setPosition(sf::Vector2f(400,10)); textClose.setFont(font); textClose.setString("X"); textClose.setStyle(sf::Text::Bold); textClose.setCharacterSize(35); textClose.setColor(sf::Color::White); textClose.setPosition(sf::Vector2f(rectTitle.getPosition().x+rectTitle.getSize().x-30, rectTitle.getPosition().y+rectTitle.getSize().y*0.05)); ///// FOLDER ICONE textureFolder.setSmooth(true); spriteFodler.setTexture(textureFolder); sf::Vector2f targetSize(25.0f, 25.0f); spriteFodler.setScale( targetSize.x / spriteFodler.getLocalBounds().width, targetSize.y / spriteFodler.getLocalBounds().height); spriteFodler.setPosition(sf::Vector2f(textTitle.getPosition().x-targetSize.x, textTitle.getPosition().y)); ///// CLOSE ICONE /*textureClose.setSmooth(true); spriteClose.setTexture(textureClose); sf::Vector2f targetSize2(window.getSize().y*0.07, window.getSize().y*0.07); spriteClose.setScale( targetSize2.x / spriteClose.getLocalBounds().width, targetSize2.y / spriteClose.getLocalBounds().height); spriteClose.setPosition(rectTitle.getPosition().x+rectTitle.getSize().x-targetSize2.x, rectTitle.getPosition().y);*/ }
void cWindow::paintLighting() { float power; int tex; int lightsDisplayed = 0; int priority = 0; for (int a = 0; a < 2; a++) { priority = 0; while (priority < LIMIT_PRIORITY_LIGHT && lightsDisplayed < game.unitCounter) { for (int i = 0; i < game.unitCounter; i++) { if (game.unit[i].light.priority == priority && game.unit[i].light.power > 0 && game.unit[i].light.texture != -1) { tex = game.unit[i].light.texture; brushRect.setTexture(&visual.gameTex[tex].handle); brushRect.setPosition(game.unit[i].pos); brushRect.setFillColor(sf::Color(255, 255, 255, max(0.00f, min(255.00f, 300.00f - game.ambientLight)))); if (!settings.enableDynamicLight) { brushRect.setTexture(&visual.gameTex[visual.addTexture("light_white.png")].handle); brushRect.setFillColor(sf::Color(255, 255, 255, 50.00f)); } brushRect.setTextureRect(sf::IntRect(0, 0, visual.gameTex[tex].handle.getSize().x, visual.gameTex[tex].handle.getSize().y)); power = game.unit[i].light.power; if (game.unit[i].light.flickerMod != 0.00f) { power += power * (game.unit[i].light.flickerMod * abs(game.unit[i].light.flickerCurTime / game.unit[i].light.flickerTime - 1.00f)); power += math.randf(-5.00f, 5.00f); } brushRect.setOrigin(sf::Vector2f(power, power)); brushRect.setSize(sf::Vector2f(power * 2.00f, power * 2.00f)); // Directional brushRect.setRotation(0.00f); if (game.unit[i].light.directional) { brushRect.setRotation(-game.unit[i].facingAngle); } // Painting to two textures if (settings.enableDynamicLight && a == 0) { window.texHandleLight.draw(brushRect, window.matrixHandle); } else if (settings.enableDynamicLight && a == 1) { window.texHandleLightMult.draw(brushRect, window.matrixHandle); } else { window.texHandle.draw(brushRect, window.matrixHandle); } } } priority += 1; } if (!math.intToBool(settings.enableBetterLight)) { break; } } brushRect.setRotation(0.00f); window.texHandleLight.display(); if (settings.enableBetterLight) { window.texHandleLightMult.display(); } }
void Sprited::draw(sf::RenderWindow *window) { // Scroll sprite sf::Vector2i shift = this->currentAnimation->frames[this->currentFrame]; this->sprite.setTextureRect(sf::IntRect(shift.x, shift.y, this->width, this->height)); this->sprite.setRotation((this->getWRotation() - this->camera->getWRotation()) / (2 * M_PI) * 360); // + this->wRotation / (2 * M_PI) * 360); if (this->camera) { // Transform sprite wPosition based on camera wPosition & wRotation this->sprite.setPosition(this->applyCameraTransformation(this->getWPosition())); } else { // No camera set, meaning this object's wPosition is not affected by camera. this->sprite.setPosition(this->getWPosition().x, this->getWPosition().y); } window->draw(this->sprite); Movable::draw(window); #ifdef DEBUG static sf::RectangleShape origin; origin.setOrigin(2, 2); origin.setSize(sf::Vector2f(5, 5)); origin.setPosition(this->sprite.getPosition()); origin.setFillColor(sf::Color(255, 0, 0, 128)); window->draw(origin); static sf::RectangleShape rect; rect.setFillColor(sf::Color::Transparent); rect.setOutlineThickness(1); rect.setOutlineColor(sf::Color::Blue); rect.setOrigin(this->sprite.getOrigin()); rect.setPosition(this->sprite.getPosition()); rect.setRotation(this->sprite.getRotation()); rect.setSize(sf::Vector2f(this->sprite.getTextureRect().width, this->sprite.getTextureRect().height)); window->draw(rect); sf::FloatRect wHitbox = this->getWHitbox(); static sf::RectangleShape hitboxRect; hitboxRect.setFillColor(sf::Color::Transparent); hitboxRect.setOutlineThickness(1); hitboxRect.setOutlineColor(sf::Color::Red); hitboxRect.setOrigin(sf::Vector2f(wHitbox.width / 2, wHitbox.height / 2)); hitboxRect.setSize(sf::Vector2f(wHitbox.width, wHitbox.height)); hitboxRect.setPosition(this->applyCameraTransformation(this->getWPosition())); hitboxRect.setRotation(-this->camera->getWRotation() / M_PI * 180); window->draw(hitboxRect); #endif }
el(sf::Vector2f p) { r.setSize(sf::Vector2f(50,50)); r.setFillColor(sf::Color(2,136,209)); pos = p; r.setPosition(pos); }
obstacle(sf::Vector2f p) { pos = p; r.setPosition(p); r.setSize(sf::Vector2f(50,50)); r.setFillColor(sf::Color(255, 205, 210)); }
void Snake::Render(sf::RenderWindow& window) { if (_body.empty()) { return; } // Draw head auto head = _body.begin(); _bodyRect.setFillColor(sf::Color::Yellow); _bodyRect.setPosition(head->position.x * _size, head->position.y * _size); window.draw(_bodyRect); // Draw body _bodyRect.setFillColor(sf::Color::Green); for (auto itr = _body.begin() + 1; itr != _body.end(); ++itr) { _bodyRect.setPosition(itr->position.x * _size, itr->position.y * _size); window.draw(_bodyRect); } }
void PongGame::setUpBall(int const mainWindowWidth, int const mainWindowHeight, sf::RectangleShape &ball) { ball.setPosition(mainWindowWidth / 2, mainWindowHeight / 2); ball.setSize(sf::Vector2f(20, 20)); ball.setFillColor(sf::Color::Red); ball.setOutlineColor(sf::Color::Yellow); ball.setOutlineThickness(2); }
Player(sf::Vector2f position, sf::Vector2f size) { once = true; rect.setPosition(position); rect.setSize(size); rect.setFillColor(sf::Color::Green); }
void IsSelected(Selection s, sf::RenderWindow &Window) { if(sf::Mouse::isButtonPressed(sf::Mouse::Left)) { if(rect.getGlobalBounds().intersects(s.rect.getGlobalBounds()) || (sf::Mouse::getPosition(Window).x > rect.getPosition().x && sf::Mouse::getPosition(Window).x < rect.getPosition().x + rect.getSize().x && sf::Mouse::getPosition(Window).y > rect.getPosition().y && sf::Mouse::getPosition(Window).y < rect.getPosition().y + rect.getSize().y)) { selected = true; rect.setFillColor(sf::Color::Magenta); } else { selected = false; rect.setFillColor(sf::Color::Green); } } }
Board(int n, sf::Vector2f pos){ boardSprite.setSize(sf::Vector2f(n, 2)); boardSprite.setFillColor(sf::Color::Blue); boardSprite.setPosition(pos); }
// As with the ball, we construct the paddle with // arguments for the initial position and initialize // the SFML rectangle shape. Paddle(float mX, float mY) { shape.setPosition(mX, mY); shape.setSize({defWidth, defHeight}); shape.setFillColor(defColor); shape.setOrigin(defWidth / 2.f, defHeight / 2.f); }
/* * Mostra na tela os indicadores básicos do jogo: * vidas restantes, HP e pontuação. */ void Jogo::exibeHud() { float x = 0.10 * janela.getSize().x; float y = 0.15 * janela.getSize().y; /* Desenha vidas extras da nave */ static sf::CircleShape losango(20.0, 4); for (int i = 0; i < nave->getVidas(); i++) { double deltaX = 2.5 * losango.getRadius(); losango.setPosition(x + (i * deltaX), y); janela.draw(losango); } /* Desenha caixa da lifebar */ y += 3.0 * losango.getRadius(); static sf::RectangleShape caixa({200.0, 10.0}); caixa.setPosition(x, y); caixa.setFillColor(sf::Color::Blue); janela.draw(caixa); /* Desenha lifebar com parcial do HP */ float k = (float) nave->getHP() / nave->getHPMax(); sf::RectangleShape lifebar({k * caixa.getSize().x, caixa.getSize().y}); lifebar.setPosition(x, y); lifebar.setFillColor(k > 0.25 ? sf::Color::Green : sf::Color::Red); janela.draw(lifebar); /* Imprime pontuação (e, se for o caso, mensagem de pausa) */ y += 2.5 * lifebar.getSize().y; sf::String str = "Score: " + std::to_string(nave->getScore()); if (pausado) str += " (pausa)"; sf::Text texto(str, fonte, 20); texto.setPosition(x, y); janela.draw(texto); }
food() { srand(time(NULL)); r.setSize(sf::Vector2f(50,50)); r.setFillColor(sf::Color(255,193,7)); generatePos(); }
el(int x , int y) { r.setSize(sf::Vector2f(50,50)); r.setFillColor(sf::Color(2,136,209)); pos.x = x; pos.y = y; r.setPosition(pos); }
Particle(sf::Vector2i position) { rect.setSize(sf::Vector2f(2,2)); rect.setOrigin( sf::Vector2f(1,1) ); rect.setFillColor( sf::Color::Red ); rect.setPosition( (sf::Vector2f)position ); velocity = sf::Vector2f(0,0); }
void init(const sf::Vector2f& position, const string filename) { _event = Event::NONE; _shape->setPosition(position); _shape->setSize(sf::Vector2f(TAILLE_SQUARE, TAILLE_SQUARE)); _shape->setFillColor(sf::Color::Black); _shape->setOutlineColor(sf::Color::White); _shape->setOutlineThickness(1); }
// Post battle update inline void set_info(int str) { info_str.setString(std::to_string(str)); health_bar_bg.setSize(sf::Vector2f(get_max_hp()/scale, 10)); health_bar_bg.setOutlineColor(sf::Color(125,125,125)); health_bar_bg.setOutlineThickness(1); health_bar_current.setSize(sf::Vector2f(str/scale, 10)); health_bar_current.setFillColor(get_life_color(str)); }
void Update(sf::RenderWindow &Window) { for(int i = 0; i < tileH; i++) { for(int j = 0; j < tileW; j++) { if(levelss[i][j] == 0) rect.setFillColor(sf::Color::White); else if(levelss[i][j] == 1) rect.setFillColor(sf::Color::Black); else continue; rect.setPosition(j*rect.getSize().x, i*rect.getSize().y); Window.draw(rect); } } }
void displaySnake(Node &node) { draw.setPosition(sf::Vector2f(node.x * (640/SIZE), node.y * (640/SIZE))); draw.setFillColor(sf::Color::White); //draw.setFillColor(sf::Color::Black); renderTexture.draw(draw); if(node.next != nullptr) displaySnake(*node.next); }
bool game_init() { r.setPosition(100, 100); r.setFillColor(sf::Color(255, 255, 255)); r.setSize(sf::Vector2f(20, 20)); color = sf::Color::White; return true; }
Goomba(float i, float j) { _rect.setSize(sf::Vector2f(32, 32)); _rect.setFillColor(sf::Color::Blue); if (_textureG.loadFromFile("goomba.png")) { _textureG.setSmooth(true); _spriteG.setTexture(_textureG); _spriteG.setScale(1.9, 1.9); } _spriteG.setPosition(50, 350); }
//CONSTRUCTOR LogicHandler::LogicHandler(void){ titleScreen = true; elapsedTime = 1; window = new sf::RenderWindow(sf::VideoMode(WIDTH, HEIGHT), TITLE, sf::Style::Close); shape.setSize(sf::Vector2f(10.0f, 10.0f)); if(!LogicHandler::loadTextures("res/")){ shape.setFillColor(sf::Color::Red); }else{ shape.setFillColor(sf::Color::Green); } titleScreenBg.setTexture(*textureList.at(1)); titleScreenBg.setPosition(0, 0); setupSprites(); window->setFramerateLimit(0); }
virtual void update(){ sf::Event event; while (window->pollEvent(event)) { // "close requested" event: we close the window if (event.type == sf::Event::Closed) { window->close(); has_ended = true; } if (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape) { has_ended = true; } } dt = timer.getElapsedTime().asSeconds(); if(dt<fadein_time) { darken.setFillColor(sf::Color(0,0,0, 255-(255/fadein_time)*dt)); } if(dt>fadein_time+stable_time) { darken.setFillColor(sf::Color(0,0,0, (255/fadeout_time)*(dt-fadein_time-stable_time))); } if(dt>fadein_time+stable_time+fadeout_time)has_ended=true; };
Info(sf::String& text) { box.setPosition(100,100); box.setFillColor(sf::Color(245,248,6)); box.setSize(sf::Vector2f(300,300)); box.setOutlineColor(sf::Color::Red); box.setOutlineThickness(3); InfoText.setString(text); InfoText.setPosition(110,110); InfoText.setFillColor(sf::Color::White); }
// Set some information about the object inline void set_info(int str, sf::Font *font, int size) { info_str.setString(std::to_string(str)); info_str.setFont(*font); info_str.setCharacterSize(size); info_str.setColor(sf::Color::Black); health_bar_bg.setSize(sf::Vector2f(get_max_hp()/scale, 10)); health_bar_bg.setOutlineColor(sf::Color(125,125,125)); health_bar_bg.setOutlineThickness(1); health_bar_current.setSize(sf::Vector2f(str/scale, 10)); health_bar_current.setFillColor(get_life_color(str)); }
StatusBox(uint _x, uint _y, float _width, float _height, const GuiStyle& _style) : BaseBox(_x, _y, _width, _height, _style) { blackbox = new sf::RectangleShape(); blackbox->setFillColor(sf::Color::Black); blackbox->setSize({_width, _height}); blackbox->setPosition(sf::Vector2f(_x, _y)); textbox = new sf::Text; textbox->setPosition(_x, _y); textbox->setFont(*style.font); textbox->setCharacterSize(style.fontsize); }