/****************************************************************************** * Constructs the spinner. ******************************************************************************/ SpinnerWidget::SpinnerWidget(QWidget* parent, QLineEdit* textBox) : QWidget(parent), _textBox(NULL), _value(0), _minValue(FLOATTYPE_MIN), _maxValue(FLOATTYPE_MAX), _upperBtnPressed(false), _lowerBtnPressed(false), _unit(nullptr) { setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Maximum, QSizePolicy::SpinBox)); setTextBox(textBox); }
void Render::run() { font.loadFromFile("nasalization-rg.ttf"); sf::Color color(65, 105, 255); sf::Color selectedColor(200, 100, 100); sf::Text menu; sf::Text play; sf::Text load; sf::Text exit; sf::Text loadLevel; setTextBox(&menu, &font, "MENU", 64, color); setTextBox(&play, &font, "Play", 32, color); setTextBox(&load, &font, "Load Game", 32, color); setTextBox(&exit, &font, "Exit", 32, color); setTextBox(&loadLevel, &font, "Load Level", 32, color); sf::Texture backgroundTexture; backgroundTexture.loadFromFile("Space.gif"); sf::Sprite background; setSprite(&background, &backgroundTexture, 0, 0, 3, 3); center(&menu, -60); center(&play); center(&load, 40); center(&loadLevel, 80); center(&exit, 120); while (!game) { if (opt == 0) play.setFillColor(selectedColor); else play.setFillColor(color); if (opt == 1) load.setFillColor(selectedColor); else load.setFillColor(color); if(opt == 2) loadLevel.setFillColor(selectedColor); else loadLevel.setFillColor(color); if (opt == 3) exit.setFillColor(selectedColor); else exit.setFillColor(color); window->clear(); window->draw(background); window->draw(menu); window->draw(play); window->draw(load); window->draw(loadLevel); window->draw(exit); window->display(); } std::string points; sf::Text playAgain; sf::Text pointsText; sf::Text gameOverText; setTextBox(&playAgain, &font, "Play again", 32, color); setTextBox(&pointsText, &font, "Points:", 24, color); setTextBox(&gameOverText, &font, "Game Over", 64, color); sf::Text continueText; sf::Text save; setTextBox(&continueText, &font, "Continue", 32, color); setTextBox(&save, &font, "Save", 32, color); sf::Texture playerShipTexture; playerShipTexture.loadFromFile("Statek.png"); sf::Texture projectileTexture; projectileTexture.loadFromFile("projectile.png"); sf::Texture enemyShipTexture; enemyShipTexture.loadFromFile("Statek.png"); sf::Texture enemy2ShipTexture; enemy2ShipTexture.loadFromFile("Statekzielony.png"); sf::Texture enemy3ShipTexture; enemy3ShipTexture.loadFromFile("Statekczerwony.png"); sf::Texture powerUpTexture[3]; powerUpTexture[0].loadFromFile("powerup1.png"); powerUpTexture[1].loadFromFile("powerup2.png"); powerUpTexture[2].loadFromFile("powerup3.png"); sf::Sprite hpSprite[MAX_HP]; for (int i = 0; i < MAX_HP; i++) setSprite(&hpSprite[i], &playerShipTexture, 8, 8, 1, 1, 10 + (32 * i), 740); sf::Sprite playerShip; setSprite(&playerShip, &playerShipTexture, 16, -16, 2, 2, playerhandler.player.getx(), playerhandler.player.gety()); sf::Sprite enemyShip[ENEMY]; for (int i = 0; i < ENEMY; i++) setSprite(&enemyShip[i], &enemyShipTexture, 16, 16, 2, 2, 0, 0, 180); sf::Sprite enemy2Ship[ENEMY]; for (int i = 0; i < ENEMY; i++) setSprite(&enemy2Ship[i], &enemy2ShipTexture, 16, 16, 2, 2, 0, 0, 180); sf::Sprite enemy3Ship[ENEMY]; for (int i = 0; i < ENEMY; i++) setSprite(&enemy3Ship[i], &enemy3ShipTexture, 16, 16, 2, 2, 0, 0, 180); sf::Sprite projectile[5]; for (int i = 0; i < 5; i++) setSprite(&projectile[i], &projectileTexture, 8, -8); sf::Sprite enemyProjectile[EPROJ]; sf::Sprite enemyProjectileDiagonalLeft[EPROJ]; sf::Sprite enemyProjectileDiagonalRight[EPROJ]; for (int i = 0; i < EPROJ; i++) { setSprite(&enemyProjectile[i], &projectileTexture, 8, -8); setSprite(&enemyProjectileDiagonalLeft[i], &projectileTexture, 8, 8, 1, 1, 0, 0, 45); setSprite(&enemyProjectileDiagonalRight[i], &projectileTexture, 8, -8, 1, 1, 0, 0, -45); } sf::Sprite powerUp[3]; for (int i = 0; i < 3; i++) { setSprite(&powerUp[i], &powerUpTexture[i], 8 - 8); } while (window->isOpen()) { window->clear(); window->draw(background); if (playerhandler.player.getHp() != 0) { playerShip.setPosition(playerhandler.player.getx(), y); for (int i = 0; i < playerhandler.player.getPlayerProjectile(); i++) { if (playerhandler.proj[i] != NULL) { projectile[i].setPosition(playerhandler.proj[i]->getx(), playerhandler.proj[i]->gety()); window->draw(projectile[i]); } } for (int i = 0; i < EPROJ; i++) { if (enemyHandler.enemyProj[i] != NULL) { enemyProjectile[i].setPosition(enemyHandler.enemyProj[i]->getx(), enemyHandler.enemyProj[i]->gety()); window->draw(enemyProjectile[i]); } } for (int i = 0; i < 3; i++) { if (playerhandler.powerUpHandler.powerUp[i] != NULL) { powerUp[i].setPosition(playerhandler.powerUpHandler.powerUp[i]->getx(), playerhandler.powerUpHandler.powerUp[i]->gety()); window->draw(powerUp[i]); } } for (int i = 0; i < EPROJ; i++) { if (enemyHandler.enemyProjDiagonalLeft[i] != NULL) { enemyProjectileDiagonalLeft[i].setPosition(enemyHandler.enemyProjDiagonalLeft[i]->getx(), enemyHandler.enemyProjDiagonalLeft[i]->gety()); window->draw(enemyProjectileDiagonalLeft[i]); } } for (int i = 0; i < EPROJ; i++) { if (enemyHandler.enemyProjDiagonalRight[i] != NULL) { enemyProjectileDiagonalRight[i].setPosition(enemyHandler.enemyProjDiagonalRight[i]->getx(), enemyHandler.enemyProjDiagonalRight[i]->gety()); window->draw(enemyProjectileDiagonalRight[i]); } } for (int i = 0; i < ENEMY; i++) { if ((enemyHandler.enemy[i] != NULL) && (enemyHandler.enemy[i]->getType() == 1)) { enemyShip[i].setRotation(enemyHandler.enemy[i]->getRotation()); enemyShip[i].setPosition(enemyHandler.enemy[i]->getx(), enemyHandler.enemy[i]->gety()); window->draw(enemyShip[i]); } if ((enemyHandler.enemy[i] != NULL) && (enemyHandler.enemy[i]->getType() == 2)) { enemy2Ship[i].setRotation(enemyHandler.enemy[i]->getRotation()); enemy2Ship[i].setPosition(enemyHandler.enemy[i]->getx(), enemyHandler.enemy[i]->gety()); window->draw(enemy2Ship[i]); } if ((enemyHandler.enemy[i] != NULL) && (enemyHandler.enemy[i]->getType() == 3)) { enemy3Ship[i].setRotation(enemyHandler.enemy[i]->getRotation()); enemy3Ship[i].setPosition(enemyHandler.enemy[i]->getx(), enemyHandler.enemy[i]->gety()); window->draw(enemy3Ship[i]); } } for (int i = 0; i < playerhandler.player.getHp(); i++) { window->draw(hpSprite[i]); } points = intToStr(playerhandler.player.getPoints()); pointsText.setString("Points " + points); window->draw(playerShip); } else if(playerhandler.player.getHp() == 0) { pointsText.setCharacterSize(48); center(&pointsText); center(&playAgain, 100); center(&gameOverText, -60); center(&exit, 140); while (!game) { if (opt == 0) playAgain.setFillColor(selectedColor); else playAgain.setFillColor(color); if (opt == 1) exit.setFillColor(selectedColor); else exit.setFillColor(color); window->clear(); window->draw(background); window->draw(gameOverText); window->draw(pointsText); window->draw(playAgain); window->draw(exit); window->display(); } pointsText.setCharacterSize(24); pointsText.setOrigin(0, 0); pointsText.setPosition(0, 0); } if (!playerhandler.nopause) { center(&continueText, -40); center(&save); center(&load, 40); center(&exit, 80); while (!playerhandler.nopause) { if (opt == 0) continueText.setFillColor(selectedColor); else continueText.setFillColor(color); if (opt == 1) save.setFillColor(selectedColor); else save.setFillColor(color); if (opt == 2) load.setFillColor(selectedColor); else load.setFillColor(color); if (opt == 3) exit.setFillColor(selectedColor); else exit.setFillColor(color); window->clear(); window->draw(background); window->draw(pointsText); window->draw(continueText); window->draw(save); window->draw(load); window->draw(exit); window->display(); } } window->draw(pointsText); window->display(); } }