Player:: Player(String F, Level &lev, float X, float Y, float W, float H, float pX, float pY): Furniture(F, X, Y, W, H, pX, pY) { obj = lev.GetAllObjects(); dx = 0; dy = 0; speed = 0; wrongPlace = false; room = 0; }
Enemy::Enemy(Image &image, Level &level, float X, float Y, float Width, float Height): Subject(image, X, Y, Width, Height) { obj = level.GetAllObjects(); sprite.setTextureRect(IntRect(0, 0, width, height)); speed = 0.08; speed_x = 0.08; stateEnemy = true;//1- right, 0-left }
Gravitation::Gravitation(sf::Sprite sp, Level &lev, float dx, float dy, int W, int H, float X, float Y, float t) { object = lev.GetAllObjects(); dx = 0; dy = 0; sprite = sp; time = t; w = W; h = H; x = X; y = Y; sprite.setTextureRect(sf::IntRect(0, 0, w, h)); }
Player::Player(Image &image, String name, Level lvl, FloatRect rect) : Entity(image, name, rect) { sprite.setTextureRect(IntRect(0, 0, int(PLAYER_SPRITE_BOUND), int(PLAYER_SPRITE_BOUND))); sprite.setPosition(rect.left, rect.top); action = down; obj = lvl.GetAllObjects(); health = COUNT_PLAYER_HEALTH; armor = COUNT_PLAYER_HEALTH; missionComplete = false; flag = false; parachute = make_unique<Parachute>(); }
_Mouse:: _Mouse(String F, Level &lev, float X, float Y, float W, float H, float pX, float pY) { x = pX; y = pY; w = W; h = H; image.loadFromFile("images/" + F); texture.loadFromImage(image); sprite.setTexture(texture); sprite.setTextureRect(IntRect((int)X,(int)Y,(int)w,(int)h)); sprite. setOrigin(w / 2, h / 2); obj = lev.GetAllObjects(); dx = 0; dy = 0; speed = 0; rightPlace = false; life = true; health = 50; }
Player::Player(sf::Image &image, sf::String Name, Level &lev, float X, float Y, float W, float H) :Entity(image, Name, X, Y, W, H) { CurrentFrame = 0; state = stay; obj = lev.GetAllObjects(); //получаем все объкты с карты if(name == "Hero") { if(heroWithPick == true) { sprite.setTextureRect(sf::IntRect(0,0,w,h)); } if(heroWithSword == true) { sprite.setTextureRect(sf::IntRect(0,518,w,h)); } if(normalHero == true) { sprite.setTextureRect(sf::IntRect(0,326,w,h)); } } }
Player::Player(Image &image, String Name, Level &level, float X, float Y, int W, int H) : Entity(image, Name, X, Y, W, H) { playerScore = 0; state = right; obj = level.GetAllObjects(); current_frame = 0; lives = 3; jump_sound_buffer.loadFromFile("music/jump.ogg"); jump_sound.setBuffer(jump_sound_buffer); boost = 0; offset = { 0, h }; scale = 1; isMove = false; if (name == "P1") { sprite.setTextureRect(IntRect(0, 0, w, h)); } }
PLAYER(AnimationManager &a, Level &lev,int x,int y):Entity(a,x,y) { option("Player",0,100,"stay"); STATE=stay; hit=false; obj = lev.GetAllObjects(); }
bool StartGame(RenderWindow & window, Game & game) { Level lvl; lvl.LoadFromFile(GetLevelNumb(game)); Image image; Texture texture; if (!image.loadFromFile("images/lvl1.png")) cout << "Error loading image from file " << endl; image.createMaskFromColor(Color(0, 128, 0)); if (!texture.loadFromImage(image)) cout << "Error loading texture from image " << endl; Sprite heartSprite; heartSprite.setTexture(texture); heartSprite.setTextureRect(IntRect(395, 151, 54, 46)); heartSprite.setScale(0.3f, 0.3f); Sprite lifeSprite; lifeSprite.setTexture(texture); lifeSprite.setTextureRect(IntRect(457, 149, 29, 29)); lifeSprite.setScale(0.8f, 0.8f); Font font; font.loadFromFile("fonts/pixel.ttf"); Text text("", font, 25); game.graphic.statistic.heart = heartSprite; game.graphic.statistic.life = lifeSprite; game.graphic.text = text; game.isPause = true; game.restart = false; vector <Enemy*> enemies; std::vector<Object> e = lvl.GetObjects("easyEnemy"); for (Object i : e) enemies.push_back(new Enemy(texture, "easyEnemy", i.rect.left, i.rect.top, 53, 28)); e = lvl.GetObjects("flyEnemy"); for (Object i : e) enemies.push_back(new Enemy(texture, "flyEnemy", i.rect.left, i.rect.top, 38, 36)); if (lvl.IsExist("trap")) { e = lvl.GetObjects("trap"); for (Object i : e) enemies.push_back(new Enemy(texture, "trap", i.rect.left, i.rect.top, 32, 18)); } vector <Portal*> portals; vector <Bullet*> bullets; vector <Object> objects = lvl.GetAllObjects(); Clock clock; SoundBuffer shootBuffer; shootBuffer.loadFromFile("sound/shoot.wav"); Sound shoot(shootBuffer); SoundBuffer portalBuffer; portalBuffer.loadFromFile("sound/portal.wav"); Sound portal(portalBuffer); SoundBuffer teleportBuffer; teleportBuffer.loadFromFile("sound/teleport.wav"); Sound teleport(teleportBuffer); SoundBuffer damageBuffer; damageBuffer.loadFromFile("sound/damage.wav"); Sound damage(damageBuffer); SoundBuffer deathBuffer; deathBuffer.loadFromFile("sound/damage.wav"); Sound gameOver(deathBuffer); Music music; music.openFromFile("sound/musicGame.ogg"); music.play(); Object playerObject = lvl.GetObject("player"); Player player(texture, "Player1", playerObject.rect.left, playerObject.rect.top, 32, 32); player.health = game.health; player.heart = game.hearts; while (window.isOpen() && (!game.restart)) { float time = float(clock.getElapsedTime().asMicroseconds()); clock.restart(); time = time / 800; Event event; Vector2i pixelPos = Mouse::getPosition(window); Vector2f pos = window.mapPixelToCoords(pixelPos); while (window.pollEvent(event)) { if (event.type == sf::Event::Closed || (Keyboard::isKeyPressed(Keyboard::Escape) && game.isPause)) { window.close(); game.restart = false; } if (event.type == Event::MouseButtonPressed) { pos.y = float(player.teleportY); if ((event.key.code == Mouse::Left) && (player.doesOpenPortal)) { CreatePortal(portals, game, "blue", pos, texture); portal.play(); } else if (event.key.code == Mouse::Right && (player.doesOpenPortal)) { CreatePortal(portals, game, "yellow", pos, texture); portal.play(); } } if (player.isTeleporting) { TeleportPlayer(player, portals); teleport.play(); } if (Keyboard::isKeyPressed(Keyboard::Return)) { game.isPause = false; } if (Keyboard::isKeyPressed(Keyboard::P)) { game.isPause = true; } if (Keyboard::isKeyPressed(Keyboard::Tab) && game.isPause) { game.restart = true; } } if (player.isExit) { if (game.isEndLevel) { game.isPause = true; } else { game.level++; game.restart = true; game.health = player.health; game.hearts = player.heart; } } for (auto *e : enemies) { if ((*e).name == "flyEnemy" && (*e).isShoot) { CreateBullet(bullets, (*e).GetRect(), player, texture); shoot.play(); } } EntitiesIntersection(player, enemies, portals, bullets, damage); if (player.alive) { setPlayerCoordinateForView(game.camera, player.GetPos().x, player.GetPos().y); } if (!game.isPause) { UpdateEnemies(objects, enemies, time, player); UpdatePortals(portals, time); UpdateBullets(objects, bullets, time); player.Update(objects, time, pos, game.portalH); } window.setView(game.camera); window.clear(); lvl.Draw(window); DrawEnemies(window, enemies); DrawPortals(window, portals); DrawBullets(window, bullets); DrawStatistic(window, &game, player, game.camera); window.draw(player.sprite); DrawAllMessages(player, game, window); music.setLoop(true); window.display(); } return game.restart; }