void drawSprite(int x, int y, double w, double h, TextureIndex textureIndex) { freeSprite.setPosition(x, y); freeSprite.setTexture(getTexture(textureIndex)); freeSprite.setScale(w / getTexture(textureIndex).getSize().x, h / getTexture(textureIndex).getSize().y); window->draw(freeSprite); }
void resize(sf::Sprite& sprite, float width, float height) { int local_width = sprite.getTextureRect().width; int local_height = sprite.getTextureRect().height; if ((local_width > 0) && (local_height > 0)) sprite.setScale(width / local_width, height / local_height); }
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);*/ }
virtual void init() { dt=0; select_switch = 0.2; if (!standard_font.loadFromFile("fonts/Unique.ttf")) { // error... } // darken = sf::RectangleShape(sf::Vector2f(800,400)); //sfx if (!buffer.loadFromFile("sfx/Blip 007.wav")) { //error } blip.setBuffer(buffer); if(!title.loadFromFile("gfx/title.png"))std::cout<<"Error"<<std::endl; t**s.setTexture(title); t**s.setOrigin(50,8); t**s.setScale(sf::Vector2f(3,3)); t**s.setPosition(400,100); sf::FloatRect tempt ; for(int i =0 ; i<4;i++) { selector[i].setFont(standard_font); selector[i].setCharacterSize(28); // dla centrowania obiektow tempt = selector[i].getGlobalBounds(); selector[i].setOrigin(sf::Vector2f(tempt.width/2,tempt.height/2)); selector[i].setPosition(350,150+30*i); } selector[0].setString("Start game"); selector[1].setString("Info"); selector[2].setString("Highscores"); selector[3].setString("Exit"); selector[0].setColor(sf::Color(0,127,127)); timer.restart(); };
void AnimatableSprite::setSprite(sf::Sprite sprite) { sf::Vector2f center = getCenterPosition(); sf::Vector2f scale = _sprite.getScale(); sf::Color color = _sprite.getColor(); sprite.setScale(scale); sprite.setColor(color); _sprite = sprite; setCenterPosition(center); }
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); }
void GraphicEngine::transformSprite(sf::Sprite& sprite, const Transformation& t, const Color& color) { if (t.hasPosition()) sprite.setPosition((float)t.getX(), (float)t.getY()); if (t.hasRotation()) sprite.rotate(t.getRotation()); if (color.isUsed()) sprite.setColor(sf::Color(color.getColor())); if (t.hasScale()) sprite.setScale(t.getScaleX(), t.getScaleY()); }
sf::Sprite Missile::ajouterMissileVaisseau(sf::Sprite sp, float posMissileX, float posMissileY) { if (!missile.loadFromFile("ressource/missile.png", sf::IntRect(0, 0, 100,100))) { std::cout<<"Erreur durant le chargement de l'image missile"<<std::endl; return sp; // On ferme le programme } else { sp.setTexture(missile); sp.setScale(0.5f, 0.5f); //setScale peut changer la taille sp.setColor(sf::Color(0, 255, 0)); sp.setPosition(posMissileX, posMissileY); return sp; } }
StaticBGImpl(const std::string & src_file, unsigned int wwidth, unsigned int wheight, unsigned int iwidth, unsigned int iheight) : m_texture(new sf::Texture), m_sprite(0), m_wwidth(wwidth), m_wheight(wheight), m_iwidth(iwidth), m_iheight(iheight) { if(!m_texture->loadFromFile(src_file)) { std::cerr << "StaticBG, could not load texture from: " << src_file << std::endl; } m_sprite = new sf::Sprite(*m_texture); if(iwidth == 0 || iheight == 0) { m_iwidth = m_wwidth; m_iheight = m_wheight; } m_sprite->setScale((float)m_iwidth/(float)m_wwidth, (float)m_iheight/(float)m_wheight); m_sprite->setPosition((float)(m_wwidth/2 - m_iwidth/2), (float)(m_wheight/2 - m_iheight/2)); }
int main(int argc, char** argv) { sf::RenderWindow window(sf::VideoMode(1000, 1000), "Physics Game!"); delete world; CreateWorld(); int currentLevel = 1; #pragma region Background Graphics // Load the background images, create a sprite and assign the image. // Sky sf::Texture backgroundTexture; backgroundTexture.loadFromFile("assets/Sky.png"); backgroundTexture.setSmooth(true); backgroundTexture.setRepeated(true); sf::Sprite background; background.setPosition(0,0); background.setScale((float)window.getSize().x,1.0f); background.setTexture(backgroundTexture); // Sun sf::Texture sunTexture; sunTexture.loadFromFile("assets/Sun.png"); sunTexture.setSmooth(true); sunTexture.setRepeated(true); sf::Sprite sun; sun.setPosition((window.getSize().x - (250*0.6f)) - window.getSize().x * 0.1f , 100); sun.setScale(0.6f,0.6f); sun.setTexture(sunTexture); // Cloud sf::Texture cloud1Texture; cloud1Texture.loadFromFile("assets/Cloud1.png"); cloud1Texture.setSmooth(true); cloud1Texture.setRepeated(false); sf::Sprite cloud1; cloud1.setPosition(window.getSize().x*0.15f,80); cloud1.setScale(1.0f,1.0f); cloud1.setTexture(cloud1Texture); // Hills sf::Texture hillsTexture; hillsTexture.loadFromFile("assets/Hills.png"); hillsTexture.setSmooth(false); hillsTexture.setRepeated(true); sf::Sprite hills1; hills1.setPosition(0,(float)window.getSize().y - 184); hills1.setScale(1.0f ,1.0f); hills1.setTexture(hillsTexture); sf::Sprite hills2; hills2.setPosition(766,(float)window.getSize().y - 184); hills2.setScale(1.0f,1.0f); hills2.setTexture(hillsTexture); sf::Sprite hills3; hills3.setPosition(766*2,(float)window.getSize().y - 184); hills3.setScale(1.0f,1.0f); hills3.setTexture(hillsTexture); #pragma endregion // Prepare for simulation. Typically we use a time step of 1/60 of a // second (60Hz) and 10 iterations. This provides a high quality simulation // in most game scenarios. float32 timeStep = 1.0f / 30.0f; int32 velocityIterations = 8; int32 positionIterations = 3; std::vector<shape> lines; sf::Texture wheel; wheel.loadFromFile("assets/Wheel.png"); wheel.setSmooth(true); sf::Texture bikeWheel; bikeWheel.loadFromFile("assets/BikeWheel.png"); bikeWheel.setSmooth(true); sf::Texture bikeFrame_t; bikeFrame_t.loadFromFile("assets/BikeFrame.png"); bikeFrame_t.setSmooth(true); #pragma region events while (window.isOpen()) { static sf::Clock deltaClock; sf::Time deltaTime = deltaClock.restart(); static float time; time += deltaTime.asSeconds() * 5; sf::Event event; while (window.pollEvent(event)) { // If the window is closed, close the SFML window switch (event.type) { case sf::Event::Closed: window.close(); break; // Resize window : set new size case sf::Event::Resized: window.setView(sf::View(sf::FloatRect(0.0f, 0.0f, (float)event.size.width, (float)event.size.height))); // Rescale and Reposition the background elements background.setScale((float)window.getSize().x,1.0f); sun.setPosition((window.getSize().x - (250*0.6f)) - window.getSize().x * 0.1f , 100); hills1.setPosition(0,(float)window.getSize().y - 184); hills2.setPosition(766,(float)window.getSize().y - 184); hills3.setPosition(766*2,(float)window.getSize().y - 184); break; case sf::Event::MouseButtonPressed: static bool pressed = false; static vector2 start,end; // When we click save the positions to a Vector2 if(event.mouseButton.button == sf::Mouse::Left) { //printf("%f - %f\n", (float)event.mouseButton.x, (float)event.mouseButton.y); // If we are drawing lines constantly, dont perform click drawing if(!pressed) { start.x = (float)event.mouseButton.x; start.y = (float)event.mouseButton.y; pressed = true; } else { end.x = (float)event.mouseButton.x; end.y = (float)event.mouseButton.y; if(start == end) { pressed = false; break; } // Create the SFML visual box based on click locations shape sf_shape = shape(start,end, 2); lines.push_back(sf_shape); vector2 center = center.GetCenter(start, end); // Create the Box2D physics box. static b2FixtureDef myFixture; static b2BodyDef myBody; myBody.type = b2_staticBody; myBody.position.Set(center.x, center.y); b2Body* body = world->CreateBody(&myBody); b2Vec2 vertices[4]; // Caluclate the positions of the Box2D Verts sf_shape.Box2DVertPos(); vertices[0].Set(sf_shape.a.x * SCALE -start.x*0.5f, sf_shape.a.y * SCALE -start.y*0.5f); vertices[3].Set(sf_shape.b.x * SCALE -start.x*0.5f, sf_shape.b.y * SCALE -start.y*0.5f); vertices[2].Set(sf_shape.c.x * SCALE -start.x*0.5f, sf_shape.c.y * SCALE -start.y*0.5f); vertices[1].Set(sf_shape.d.x * SCALE -start.x*0.5f, sf_shape.d.y * SCALE -start.y*0.5f); b2PolygonShape polyShape; polyShape.Set(vertices, 4); myFixture.shape = &polyShape; myFixture.density = 1; myFixture.friction = 1; body->CreateFixture(&myFixture); pressed = false; } } } } #pragma endregion if(currentLevel == 2) l1.Update(); #pragma region Keyboard_Input__Reset // RESET ALL if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)) { // Clear all SFML Lines lines.clear(); // Pause the game paused = true; // Reset the World delete world; LevelLoad(currentLevel); } else if (sf::Keyboard::isKeyPressed(sf::Keyboard::R)) { // Reset the Level delete world; LevelLoad(currentLevel); // Recreate the physics on all the lines RecreateLines(lines); int x = 9; // Pause the game paused = true; } else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Num1)) { // Clear all SFML Lines lines.clear(); // Pause the game paused = true; // Reset the World delete world; LevelLoad(1); currentLevel = 1; } else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Num2)) { // Clear all SFML Lines lines.clear(); // Pause the game paused = true; // Reset the World delete world; LevelLoad(2); currentLevel = 2; } #pragma endregion #pragma region Pause static bool toggle = false; if (sf::Keyboard::isKeyPressed(sf::Keyboard::Space)) { if(!toggle) { paused = !paused; toggle = true; } } else { toggle = false; } #pragma endregion if(time > 0.016f) { if(!paused) world->Step(time, velocityIterations, positionIterations); time = 0; } window.clear(); #pragma region BackgroundArt window.draw(background); window.draw(sun); window.draw(cloud1); window.draw(hills1); window.draw(hills2); window.draw(hills3); #pragma endregion #pragma region DrawSFML size_t size = 0; sf::ConvexShape cShape; cShape.setFillColor(sf::Color::Red); //This loops through every single body in the game world for(b2Body* b = world->GetBodyList(); b; b = b->GetNext()) { //This loops through every fixture in the current body for(b2Fixture* f = b->GetFixtureList(); f; f = f->GetNext()) { //This checks to see if the type of the fixture is a polygon, if it is then draw the polygon if(f->GetType() == b2Shape::e_polygon && currentLevel != 2) { // Create the convex shape static sf::ConvexShape cShape; cShape.setFillColor(sf::Color::Red); //Stores a pointer to the shape stored in the fixture b2PolygonShape* s = (b2PolygonShape*)f->GetShape(); //Get the amount of vertices stored in the shape size = s->GetVertexCount(); //Set the size of the object in SFML so it knows how many vertices the shape should have cShape.setPointCount(size); //Loop through the vertices and send them from Box2D to the SFML shape for(int i = 0; i < size; i++) { //Stores the current vertex in v b2Vec2 v = s->GetVertex(i); //Converts the vertex from its local space to where it is in the world cShape.setPoint(i, sf::Vector2f((b->GetWorldVector(v).x + b->GetPosition().x), (b->GetWorldVector(v).y + b->GetPosition().y))); } //Draws the shape onto the window window.draw(cShape); } else if ((f->GetType() == b2Shape::e_polygon && b->GetType() == b2_dynamicBody)) { static sf::Sprite bikeFrame; bikeFrame.setTexture(bikeFrame_t); bikeFrame.setPosition(f->GetBody()->GetPosition().x, f->GetBody()->GetPosition().y); bikeFrame.setScale(0.5f,0.5f); bikeFrame.setRotation(b->GetAngle() * 57.2957795f); bikeFrame.setOrigin(0,0); window.draw(bikeFrame); } else if (f->GetType() == b2CircleShape::e_circle) { // // Create A cricle to be drawn // static sf::CircleShape circle; // circle.setFillColor(sf::Color::Green); // //Stores a pointer to the shape stored in the fixture // b2PolygonShape* s = (b2PolygonShape*)f->GetShape(); // // Calculate the radius for the SFML circle // circle.setRadius(s->m_radius); // circle.setPosition(f->GetBody()->GetPosition().x - circle.getRadius(), f->GetBody()->GetPosition().y - circle.getRadius()); // window.draw(circle); b2PolygonShape* s = (b2PolygonShape*)f->GetShape(); static sf::Sprite sWheel; sWheel.setScale((s->m_radius*0.01)*2,(s->m_radius*0.01)*2); sWheel.setPosition (f->GetBody()->GetPosition().x, f->GetBody()->GetPosition().y); if(currentLevel == 1) sWheel.setTexture(wheel); if(currentLevel == 2) sWheel.setTexture(bikeWheel); sWheel.setOrigin(50,50); sWheel.setRotation(b->GetAngle() * 57.2957795f); window.draw(sWheel); } } } #pragma endregion #pragma region DrawClickedLines // draw all elements in line vector for(int i = 0; i != lines.size(); ++i) { static sf::VertexArray quad(sf::Quads, 4); quad[0].position = sf::Vector2f(lines[i].a.x, lines[i].a.y); quad[1].position = sf::Vector2f(lines[i].b.x, lines[i].b.y); quad[2].position = sf::Vector2f(lines[i].c.x, lines[i].c.y); quad[3].position = sf::Vector2f(lines[i].d.x, lines[i].d.y); for(int j = 0; j != quad.getVertexCount(); ++j) quad[j].color = sf::Color::Green; window.draw(quad); // Create shadows under all the lines static sf::VertexArray shadow(sf::Quads, 4); shadow[0].position = sf::Vector2f(lines[i].a.x, lines[i].a.y); shadow[1].position = sf::Vector2f(lines[i].b.x, lines[i].b.y); shadow[2].position = sf::Vector2f(lines[i].c.x, lines[i].c.y+80); shadow[3].position = sf::Vector2f(lines[i].d.x, lines[i].d.y+80); shadow[0].color = sf::Color::Color(0,0,0,80); shadow[1].color = sf::Color::Color(0,0,0,80); shadow[2].color = sf::Color::Color(0,0,0,0); shadow[3].color = sf::Color::Color(0,0,0,0); window.draw(shadow); } #pragma endregion #pragma region Play/Pause // Change the play and pause Icon on screen based on state if(!paused) { static sf::VertexArray play(sf::Triangles, 3); vector2 location(10,10); play[0].position = sf::Vector2f(0 +location.x, 0 +location.y); play[1].position = sf::Vector2f(20 +location.x, 15 +location.y); play[2].position = sf::Vector2f(0 +location.x, 30 +location.y); play[0].color = sf::Color::Green; play[1].color = sf::Color::Green; play[2].color = sf::Color::Green; window.draw(play); } else { static sf::VertexArray pause1(sf::Quads, 4); static sf::VertexArray pause2(sf::Quads, 4); vector2 location(10,10); pause1[0].position = sf::Vector2f(0 +location.x, 0 +location.y); pause1[1].position = sf::Vector2f(5 +location.x, 0 +location.y); pause1[2].position = sf::Vector2f(5 +location.x, 30 +location.y); pause1[3].position = sf::Vector2f(0 +location.x, 30 +location.y); pause1[0].color = sf::Color::Blue; pause1[1].color = sf::Color::Blue; pause1[2].color = sf::Color::Blue; pause1[3].color = sf::Color::Blue; pause2[0].position = sf::Vector2f(10 +location.x, 0 +location.y); pause2[1].position = sf::Vector2f(15 +location.x, 0 +location.y); pause2[2].position = sf::Vector2f(15 +location.x, 30 +location.y); pause2[3].position = sf::Vector2f(10 +location.x, 30 +location.y); pause2[0].color = sf::Color::Blue; pause2[1].color = sf::Color::Blue; pause2[2].color = sf::Color::Blue; pause2[3].color = sf::Color::Blue; window.draw(pause1); window.draw(pause2); } #pragma endregion window.display(); } return 0; }
inline void ManageLevel::setToolTipScale (sf::Vector2f _scale) { m_tooltip.setScale(_scale); }
sf::Sprite Missile::supprimerMissile(sf::Sprite sp) { sp.setScale(0.0f, 0.0f); sp.setPosition(0.0f, 0.0f); return sp; }
void resize(sf::Sprite& sprite, float x, float y) { sprite.setScale( x / sprite.getGlobalBounds().width, y / sprite.getGlobalBounds().height ); }
void update(sf::RectangleShape floor[], sf::RectangleShape road[], int floorWidth, int floorHeightPosition, sf::Sprite& rrSprite, double &pos, bool &jumpStatus, bool& isoverlap, std::stringstream &ss, sf::Clock &clock, sf::Text &textTime, sf::Music& roadrunnerMusic, sf::Music& sanicMusic, sf::Sound& squawkSound, bool& deathStatus, sf::Sprite& sanicSprite, sf::Sprite& sanicPowerupSprite, bool& sanicPowerupStatus, int& globalSpeed, sf::Time& sanicTime, bool& powerupSpawnStatus, sf::Time& powerupSpawnTimer, sf::Sprite arrayOfObjectSprite[], bool& boulderSpawnStatus, int numObject, int objStop, sf::Sound& jumpSound, sf::RectangleShape backgroundbox[]) { //game timer if (!isoverlap) { sf::Time time1 = clock.getElapsedTime(); ss.str(std::string()); ss << setprecision(2) << fixed << static_cast<double>(time1.asSeconds()); textTime.setString(ss.str().c_str()); } // Return to roadrunner character if (clock.getElapsedTime() >= sanicTime && sanicPowerupStatus) { sanicMusic.pause(); roadrunnerMusic.play(); sanicPowerupStatus = false; } // How fast everything moves if (sanicPowerupStatus && (clock.getElapsedTime() <= sanicTime - sf::seconds(1))) //sanic run speed globalSpeed = 100; else globalSpeed = 15; //roadrunner run speed // Powerup spawner, checks every 10 seconds if (clock.getElapsedTime() >= powerupSpawnTimer) { powerupSpawnTimer += sf::seconds(10); //time to spawn for every consecutive powerup after the first powerupSpawnStatus = true; } // Powerup spawn chance if (powerupSpawnStatus) { if (rand() % 100 <= 33) // 33% chance to spawn { sanicPowerupSprite.setScale(0.05, 0.05); sanicPowerupSprite.setPosition(floorWidth, 250); } powerupSpawnStatus = false; } // Sanicpowerup movement, how fast the icon moves if (sanicPowerupSprite.getPosition().x >= objStop) sanicPowerupSprite.move(-globalSpeed, 0); // Roadrunner and sanicpowerup collision if (overlap(rrSprite, sanicPowerupSprite) && !sanicPowerupStatus) { roadrunnerMusic.pause(); sanicMusic.play(); sanicPowerupStatus = true; sanicTime = clock.getElapsedTime() + sf::seconds(10); sanicPowerupSprite.setScale(0, 0); } //Infinite floor/road floor[0].move(-globalSpeed, 0); floor[1].move(-globalSpeed, 0); road[0].move(-globalSpeed, 0); road[1].move(-globalSpeed, 0); if (floor[0].getPosition().x <= -floorWidth) { floor[0].setPosition(0, floorHeightPosition); floor[1].setPosition(floorWidth, floorHeightPosition); road[0].setPosition(0, floorHeightPosition); road[1].setPosition(floorWidth, floorHeightPosition); } //backgroundbox, movement, infinite background if (sanicPowerupStatus && (clock.getElapsedTime() <= sanicTime - sf::seconds(1))) { backgroundbox[0].move(-globalSpeed / 2 + 10, 0); backgroundbox[1].move(-globalSpeed / 2 + 10, 0); } else { backgroundbox[0].move(-globalSpeed + 10, 0); backgroundbox[1].move(-globalSpeed + 10, 0); } if (backgroundbox[0].getPosition().x <= -floorWidth) { backgroundbox[0].setPosition(0, -100); backgroundbox[1].setPosition(floorWidth, -100); } // Roadrunner jump if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up) && rrSprite.getPosition().y >= 505) { jumpStatus = true; jumpSound.play(); } if (jumpStatus && (rrSprite.getPosition().y <= 505)) { rrSprite.move(0, -15); } if (rrSprite.getPosition().y <= 100) { jumpStatus = false; } if (!jumpStatus && (rrSprite.getPosition().y < 505)) { rrSprite.move(0, 15); } // Sanic jump if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up) && sanicSprite.getPosition().y >= 485) { jumpStatus = true; } if (jumpStatus && (sanicSprite.getPosition().y <= 485)) { sanicSprite.move(0, -15); } if (sanicSprite.getPosition().y <= 100) { jumpStatus = false; } if (!jumpStatus && (sanicSprite.getPosition().y < 485)) { sanicSprite.move(0, 15); } // Movement of objects for (int i = 0; i < numObject-1; i++) { if (arrayOfObjectSprite[i].getPosition().x >= objStop) arrayOfObjectSprite[i].move(-globalSpeed, 0); } if (arrayOfObjectSprite[6].getPosition().x >= objStop) arrayOfObjectSprite[6].move(-globalSpeed * 1.3, 0); // Coyote run speed // First checkpoint: spawns one object for (int i = 0; i < numObject; i++) { if ((arrayOfObjectSprite[i].getPosition().x >= 800 && arrayOfObjectSprite[i].getPosition().x <= 1000) && boulderSpawnStatus) { boulderSpawnStatus = false; int reroll = true; int randBoulderSpawn = floorWidth + 700 + rand() % 1000; while (reroll) { int randBoulder = rand() % numObject; if (arrayOfObjectSprite[randBoulder].getPosition().x <= objStop) { if (randBoulder >= 0 && randBoulder < 2) arrayOfObjectSprite[randBoulder].setPosition(randBoulderSpawn, 500); // boulder else if (randBoulder >= 2 && randBoulder < 4) arrayOfObjectSprite[randBoulder].setPosition(randBoulderSpawn, 420); // cactus else if (randBoulder >= 4 && randBoulder < 6) arrayOfObjectSprite[randBoulder].setPosition(randBoulderSpawn, 510); // tumbleWeed else arrayOfObjectSprite[randBoulder].setPosition(randBoulderSpawn+1000, 470); // coyote, give him a running start reroll = false; } } } } // Second Checkpoint: renable spawning of objects for (int i = 0; i < numObject; i++) { if (arrayOfObjectSprite[i].getPosition().x >= 600 && arrayOfObjectSprite[i].getPosition().x < 800) boulderSpawnStatus = true; } // Check collision for all objects in array for (int i = 0; i < numObject; i++) { if (overlap(rrSprite, arrayOfObjectSprite[i]) && !sanicPowerupStatus) { isoverlap = true; } } // Death conditions if (isoverlap && deathStatus) { roadrunnerMusic.pause(); squawkSound.play(); deathStatus = false; } }
void cursor::init(string cursorFile, string cursorPass) { app.setMouseCursorVisible(false); textureManager.add(cursorFile, cursorPass, true); sprite.setScale(settings.getCursorScale()); }
void ObjectStyle::scaleFlag(sf::Sprite & sprite) { sf::Vector2i tile = miscTileset.getTileSize(); sprite.setScale(size.x / tile.x, size.y / tile.y); }
void ObjectStyle::scaleToken(sf::Sprite & sprite) { sf::Vector2i tile = Textures::tilesetMisc().getTileSize(); sprite.setScale(size.x / tile.x, size.y / tile.y); }