Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SFML/Graphics.hpp>
- #include <conio.h>
- #include <SFML/Audio.hpp>
- #include "SetMenu.hpp"
- #include "SetSound.hpp"
- using namespace sf;
- float offsetX = 0, offsetY = 0;
- const int height = 18;
- const int width = 66;
- const int tileSize = 77;
- const int numOfEnemy = 60;
- int currentLevel = 1;
- bool play = false, isMenu = true, game = false, puskgame = false, isWin = false, isDie = false, isPause = false;
- SetSound sound;
- String TileMap[height] = {
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
- "A A A A",
- "A C A A A A A",
- "AAAAAAAAAAA A A AAA A A AAAAAAAAAAAAAA AAAA",
- "A A AAAAAAAAAAAAAAAAAAAAA A A A",
- "A AA A AAAAAAAAAA A A",
- "A A A A A A AAAA AAAA",
- "A AAAAAAAAAAAAAAAAAAAAA A A AA AA A",
- "A A AA AAAAAAAAAAAA A A A",
- "A A A A AAAXXAAXXAAAAA AAAA",
- "AAAAAAAAAAX AA AA A A A A A A A",
- "A A A A X X X AA A A",
- "A A A AAAAAAAAAAA A A AAAA AAAA",
- "A A AA AA A AAAAAAAAAA A A",
- "A AAAAAAAAAAAA A A A A A",
- "A A A AAAAA AAAA",
- "A AAXXXXXXXA A A AAAAXXXXXXAAAA",
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
- };
- class Player {
- public:
- float speedX, speedY;
- FloatRect rect;
- bool onGround, rig;
- Sprite sprite;
- float curFrame, damFrame;
- int numOfLife, blockdam;
- bool life, damage;
- Player(Texture& image) {
- sprite.setTexture(image);
- rect = FloatRect(tileSize, tileSize * 2, 77 * 0.9, 65 * 0.9);
- sprite.setTextureRect(IntRect(0, 0, 77, 65));
- sprite.setScale(0.9, 0.9);
- speedX = speedY = 0;
- curFrame = 0;
- numOfLife = 3;
- life = true;
- damage = false;
- damFrame = 0;
- blockdam = 0;
- }
- void update(float time) {
- rect.left += speedX * time;
- Collision(0);
- if (!onGround)
- speedY = speedY + 0.0005 * time;
- rect.top += speedY * time;
- onGround = false;
- Collision(1);
- if (numOfLife <= 0) {
- life = false;
- sound.music[1].stop();
- play = false;
- isDie = true;
- }
- if (isWin)
- sprite.setTextureRect(IntRect(0, 0, 77, 65));
- curFrame += 0.01 * time;
- if (curFrame > 8)
- curFrame -= 7;
- if (speedX > 0) {
- if (speedY == 0)
- sprite.setTextureRect(IntRect(77 * int(curFrame), 0, 77, 65));
- else
- sprite.setTextureRect(IntRect(0, 81, 45, 65));
- rig = true;
- }
- if (speedX < 0) {
- if (speedY == 0)
- sprite.setTextureRect(IntRect(77 * int(curFrame) + 77, 0, -77, 65));
- else
- sprite.setTextureRect(IntRect(45, 81, -45, 65));
- rig = false;
- }
- sprite.setPosition(rect.left - offsetX, rect.top - offsetY);
- speedX = 0;
- }
- void Collision(int dir) {
- for (int i = rect.top / tileSize; i < (rect.top + rect.height) / tileSize; i++)
- for (int j = rect.left / tileSize; j < (rect.left + rect.width) / tileSize; j++) {
- if (TileMap[i][j] == 'A' || TileMap[i][j] == 'K') {
- if (speedX > 0 && dir == 0)
- rect.left = j * tileSize - rect.width;
- if (speedX < 0 && dir == 0)
- rect.left = j * tileSize + tileSize;
- if (speedY > 0 && dir == 1) {
- rect.top = i * tileSize - rect.height;
- speedY = 0;
- onGround = true;
- }
- if (speedY < 0 && dir == 1) {
- rect.top = i * tileSize + tileSize;
- speedY = 0;
- }
- }
- if (TileMap[i][j] == 'B') {
- sound.bonus.play();
- TileMap[i][j] = ' ';
- }
- if (TileMap[i][j] == 'C') {
- sound.bonus.play();
- TileMap[i][j] = ' ';
- numOfLife++;
- }
- if (TileMap[i][j] == '2' || TileMap[i][j] == '3' ||
- TileMap[i][j] == '4' || TileMap[i][j] == '5') {
- sound.win.play();
- sound.music[1].stop();
- rect.left += tileSize + tileSize;
- for (int z = 0; z < height; z++)
- TileMap[z][j] = 'A';
- isWin = true;
- play = false;
- }
- if (TileMap[i][j] == 'X' && !damage) {
- if ((speedX > 0 && dir == 0) || (speedX < 0 && dir == 0) ||
- (speedY > 0 && dir == 1) || (speedY < 0 && dir == 1)) {
- sound.dieman.play();
- numOfLife--;
- damage = true;
- if (numOfLife > 0) {
- if (i == 10 && j == 10) {
- if (speedY < 0 && dir == 1)
- blockdam = 1;
- else if (speedY > 0 && dir == 1)
- blockdam = 2;
- }
- if (i == 16 && j >= 19 && j <= 25)
- blockdam = 3;
- if (i == 11 && (j == 30 || j == 33 || j == 36))
- blockdam = 4;
- if (i == 9 && (j == 45 || j == 46 || j == 49 || j == 50)) {
- if (speedY < 0 && dir == 1)
- blockdam = 5;
- else if (speedY > 0 && dir == 1)
- blockdam = 6;
- }
- if (i == 16 && j >= 56 && j <= 61)
- blockdam = 7;
- }
- }
- }
- }
- }
- };
- class Bullet {
- public:
- float speedX, speedY;
- FloatRect rect;
- int go;
- Sprite sprite;
- Bullet(Texture& image) {
- sprite.setTexture(image);
- speedX = speedY = 0;
- go = 0;
- }
- void update(float time) {
- rect.left += speedX * time;
- Collision(0);
- rect.top += speedY * time;
- Collision(1);
- sprite.setPosition(rect.left - offsetX, rect.top - offsetY);
- }
- void Collision(int dir) {
- for (int i = rect.top / tileSize; i < (rect.top + rect.height) / tileSize; i++)
- for (int j = rect.left / tileSize; j < (rect.left + rect.width) / tileSize; j++)
- if (TileMap[i][j] == 'A')
- if ((speedX > 0 && dir == 0) || (speedX < 0 && dir == 0))
- go = 0;
- }
- };
- class Enemy {
- public:
- float speedX;
- FloatRect rect;
- Sprite sprite;
- float curFrame;
- bool life;
- void set(Texture& image, int x, int y) {
- sprite.setTexture(image);
- sprite.setScale(0.38, 0.38);
- rect = FloatRect(x, y, tileSize, tileSize);
- speedX = 0.1;
- curFrame = 0;
- life = false;
- }
- void update(float time) {
- if (!isPause)
- rect.left += speedX * time;
- Collision();
- curFrame += time * 0.005;
- if (curFrame > 5)
- curFrame -= 5;
- if (life) {
- if (speedX > 0)
- sprite.setTextureRect(IntRect(165 * int(curFrame), 0, 165, 204));
- else if (speedX < 0)
- sprite.setTextureRect(IntRect(165 * int(curFrame) + 165, 0, -165, 204));
- }
- else
- sprite.setTextureRect(IntRect(0, 0, 0, 0));
- sprite.setPosition(rect.left - offsetX, rect.top - offsetY);
- }
- void Collision() {
- for (int i = rect.top / tileSize; i < (rect.top + rect.height) / tileSize; i++)
- for (int j = rect.left / tileSize; j < (rect.left + rect.width) / tileSize; j++)
- if (TileMap[i][j] == 'A') {
- if (speedX > 0) {
- rect.left = j * tileSize - rect.width;
- speedX *= -1;
- }
- else if (speedX < 0) {
- rect.left = j * tileSize + tileSize;
- speedX *= -1;
- }
- }
- }
- };
- class Boss {
- public:
- float speedY;
- FloatRect rect;
- Sprite sprite;
- float curFrame;
- bool life, rig;
- int numOfLife;
- void set(Texture& image, int x, int y) {
- sprite.setTexture(image);
- sprite.setScale(1.5, 1.5);
- rect = FloatRect(x, y, tileSize, tileSize);
- speedY = 0.2;
- curFrame = 0;
- life = true;
- rig = false;
- numOfLife = 10;
- }
- void update(float time) {
- if (!isPause)
- rect.top += speedY * time;
- Collision();
- if (life && numOfLife == 0) {
- life = false;
- sprite.setTextureRect(IntRect(0, 0, 0, 0));
- sound.music[1].stop();
- sound.win.play();
- isWin = true;
- play = false;
- }
- sprite.setPosition(rect.left - offsetX, rect.top - offsetY);
- }
- void Collision() {
- for (int i = rect.top / tileSize; i < (rect.top + rect.height) / tileSize; i++)
- for (int j = rect.left / tileSize; j < (rect.left + rect.width) / tileSize; j++)
- if (TileMap[i][j] == 'A')
- {
- if (speedY > 0) {
- rect.top = i * tileSize - rect.height;
- speedY *= -1;
- }
- else if (speedY < 0) {
- rect.top = i * tileSize + tileSize;
- speedY *= -1;
- }
- }
- }
- };
- class BulletBoss {
- public:
- float speedX, speedY;
- FloatRect rect;
- int go;
- Sprite sprite;
- void set(Texture& image, int x, int y) {
- sprite.setTexture(image);
- speedX = speedY = 0;
- go = 0;
- }
- void update(float time) {
- if (!isPause)
- rect.left += speedX * time;
- Collision();
- if (!isPause)
- rect.top += speedY * time;
- sprite.setPosition(rect.left - offsetX, rect.top - offsetY);
- }
- void Collision() {
- for (int i = rect.top / tileSize; i < (rect.top + rect.height) / tileSize; i++)
- for (int j = rect.left / tileSize; j < (rect.left + rect.width) / tileSize; j++)
- if (TileMap[i][j] == 'A') {
- if (speedX > 0) {
- rect.left = j * tileSize - rect.width;
- go = 0;
- }
- else if (speedX < 0) {
- rect.left = j * tileSize + tileSize;
- go = 0;
- }
- }
- }
- };
- int main() {
- RenderWindow window(VideoMode(1000, 500), "Platformer!");
- Texture f;
- f.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/fon.png");
- Sprite background(f);
- Texture Picture;
- Picture.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/man.png");
- Player player(Picture);
- int frame = 0;
- Texture t2;
- t2.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/plat.png");
- Sprite plat(t2);
- Texture t1;
- t1.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/bullet.png");
- Bullet bullet(t1);
- Texture tl;
- tl.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/life.png");
- Sprite life[10];
- for (int i = 0; i < 10; i++) {
- life[i].setTexture(tl);
- life[i].setScale(1.3, 1.3);
- life[i].setPosition(5 + 50 * i, 5);
- }
- Texture t3;
- t3.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/enemy.png");
- Enemy enemy[numOfEnemy];
- enemy[0].set(t3, 4 * tileSize, 13 * tileSize);
- for (int i = 1; i < 4; i++)
- enemy[i].set(t3, (18 + (i - 1)) * tileSize, 3 * tileSize);
- for (int i = 4; i < 9; i++)
- enemy[i].set(t3, (28 + (i - 4)) * tileSize, 3 * tileSize);
- for (int i = 9; i < 16; i++)
- enemy[i].set(t3, (29 + (i - 9)) * tileSize, 7 * tileSize);
- for (int i = 16; i < 26; i++)
- enemy[i].set(t3, (27 + (i - 16)) * tileSize, 16 * tileSize);
- for (int i = 26; i < 36; i++)
- enemy[i].set(t3, (42 + (i - 26)) * tileSize, 16 * tileSize);
- for (int i = 36; i < 44; i++)
- enemy[i].set(t3, (40 + (i - 36)) * tileSize, 12 * tileSize);
- for (int i = 44; i < 53; i++)
- enemy[i].set(t3, (44 + (i - 44)) * tileSize, 8 * tileSize);
- for (int i = 53; i < 60; i++)
- enemy[i].set(t3, (44 + (i - 53)) * tileSize, 2 * tileSize);
- int enemydam = 0, bossdam = 0;
- Texture t4;
- t4.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/Boss.png");
- Boss boss;
- boss.set(t4, 59 * tileSize, tileSize);
- Sprite lifeBoss[10];
- for (int i = 0; i < 10; i++) {
- lifeBoss[i].setTexture(t4);
- lifeBoss[i].setScale(0.3, 0.3);
- lifeBoss[i].setPosition(40 * i, 60);
- }
- Texture t5;
- t5.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/pulaBoss.png");
- BulletBoss bulletBos;
- bulletBos.set(t5, 59 * tileSize, tileSize);
- Texture nl;
- nl.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/level.png");
- Sprite lvl(nl);
- lvl.setPosition(700, 0);
- Texture sc;
- sc.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Play/score.png");
- Sprite score(sc);
- score.setTextureRect(IntRect(0, 0, 27, 36));
- score.setPosition(950, 5);
- Texture m1;
- m1.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/naz.png");
- Sprite naz(m1);
- naz.setPosition(200, 10);
- Texture m2;
- m2.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/butplay.png");
- Sprite butplay(m2);
- butplay.setPosition(200, 235);
- Texture m3;
- m3.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/exit.png");
- Sprite exit(m3);
- exit.setPosition(600, 235);
- Texture m4;
- m4.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/nazurav.png");
- Sprite nazurav(m4);
- nazurav.setPosition(350, 10);
- Texture m5;
- m5.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/butlev.png");
- Sprite butlev[5];
- for (int i = 0; i < 5; i++) {
- butlev[i].setTexture(m5);
- butlev[i].setPosition(150 + 150 * i, 230);
- butlev[i].setTextureRect(IntRect(0, 0, 80, 80));
- }
- butlev[0].setTextureRect(IntRect(0, 80, 80, 80));
- Texture m6;
- m6.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/back.png");
- Sprite back(m6);
- back.setPosition(150, 400);
- SetMenu sm;
- Texture m7;
- m7.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/win.png");
- Sprite win(m7);
- win.setPosition(300, 100);
- Texture m8;
- m8.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/urpro.png");
- Sprite urpro(m8);
- urpro.setPosition(300, 100);
- Texture m9;
- m9.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/sledur.png");
- Sprite sledur(m9);
- sledur.setPosition(500, 250);
- Texture m10;
- m10.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/naczan.png");
- Sprite naczan(m10);
- naczan.setPosition(200, 250);
- Texture m11;
- m11.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/butmen.png");
- Sprite butmen(m11);
- butmen.setPosition(400, 350);
- Texture m12;
- m12.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/ki.png");
- Sprite ki(m12);
- ki.setPosition(400, 100);
- Texture m13;
- m13.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/nadpause.png");
- Sprite nadpause(m13);
- nadpause.setPosition(400, 100);
- Texture m14;
- m14.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/Menu/nadprod.png");
- Sprite nadprod(m14);
- nadprod.setPosition(600, 250);
- Clock clock;
- sound.music[0].play();
- while (window.isOpen())
- {
- float time = clock.getElapsedTime().asMicroseconds();
- clock.restart();
- time = time / 800;
- Event event;
- while (window.pollEvent(event))
- {
- if (event.type == Event::Closed)
- window.close();
- if (event.type == Event::MouseButtonPressed)
- if (event.key.code == Mouse::Left) {
- Vector2i pos = Mouse::getPosition(window);
- if (isMenu) {
- if (pos.x >= 600 && pos.x <= 774 &&
- pos.y >= 235 && pos.y <= 306)
- window.close();
- if (pos.x >= 200 && pos.x <= 392 &&
- pos.y >= 235 && pos.y <= 302) {
- sound.button.play();
- isMenu = false;
- game = true;
- }
- }
- else if (game) {
- if (pos.x >= 150 && pos.x <= 273 &&
- pos.y >= 400 && pos.y <= 448) {
- sound.button.play();
- game = false;
- isMenu = true;
- }
- for (int i = 0; i < 5; i++)
- if (pos.x >= 150 + 150 * i && pos.x <= 230 + 150 * i &&
- pos.y >= 230 && pos.y <= 310) {
- sound.button.play();
- if (sm.blv[i]) {
- sound.music[0].stop();
- puskgame = true;
- sm.pusklever[i] = true;
- }
- }
- }
- else if (isWin || isDie || isPause) {
- if (pos.x >= 400 && pos.x <= 685 &&
- pos.y >= 350 && pos.y <= 382) {
- sound.button.play();
- sound.music[1].stop();
- sound.music[0].play();
- isWin = false;
- isMenu = true;
- play = false;
- isDie = false;
- player.damage = false;
- isPause = false;
- enemydam = 0;
- player.blockdam = 0;
- bossdam = 0;
- player.numOfLife = 3;
- player.life = true;
- player.sprite.setTextureRect(IntRect(0, 0, 77, 65));
- for (int i = 0; i < 5; i++)
- sm.pusklever[i] = false;
- offsetX = 0;
- offsetY = 0;
- player.rect.left = 77;
- player.rect.top = 172.5;
- }
- if (pos.x >= 200 && pos.x <= 428 &&
- pos.y >= 250 && pos.y <= 291) {
- sound.button.play();
- isWin = false;
- puskgame = true;
- isDie = false;
- player.damage = false;
- isPause = false;
- enemydam = 0;
- player.blockdam = 0;
- bossdam = 0;
- if (currentLevel == 5)
- offsetY = 0;
- }
- if (pos.x >= 600 && pos.x <= 872 &&
- pos.y >= 250 && pos.y <= 290 && isPause) {
- sound.button.play();
- sound.music[1].setVolume(25);
- isPause = false;
- }
- else if (pos.x >= 500 && pos.x <= 856 &&
- pos.y >= 250 && pos.y <= 293 && currentLevel < 5 && !isDie) {
- sound.button.play();
- isWin = false;
- puskgame = true;
- isDie = false;
- player.damage = false;
- isPause = false;
- enemydam = 0;
- player.blockdam = 0;
- bossdam = 0;
- sm.pusklever[currentLevel - 1] = false;
- sm.pusklever[currentLevel] = true;
- }
- }
- }
- }
- if (isWin)
- sm.blv[currentLevel] = true;
- if (sm.blv[1])
- butlev[1].setTextureRect(IntRect(80, 80, 80, 80));
- if (sm.blv[2])
- butlev[2].setTextureRect(IntRect(80 * 2, 80, 80, 80));
- if (sm.blv[3])
- butlev[3].setTextureRect(IntRect(80 * 3, 80, 80, 80));
- if (sm.blv[4])
- butlev[4].setTextureRect(IntRect(0, 80 * 2, 80, 80));
- if (puskgame) {
- sound.music[1].play();
- sound.music[1].setVolume(25);
- puskgame = false;
- game = false;
- if (sm.pusklever[0]) {
- currentLevel = 1;
- offsetX = 0;
- offsetY = 0;
- player.rect.left = 77;
- player.rect.top = 172.5;
- enemy[0].life = true;
- //for (int i = 4; i < 7; i++)
- // TileMap[9][i] = 'B';
- TileMap[16][7] = 'C';
- for (int i = 15; i < 17; i++)
- TileMap[i][13] = '2';
- }
- if (sm.pusklever[1]) {
- currentLevel = 2;
- player.rect.left = 1098.39;
- player.rect.top = 1250.5;
- offsetX = player.rect.left;
- offsetY = player.rect.top - 365;
- for (int i = 1; i < 4; i++)
- enemy[i].life = true;
- for (int i = 15; i < 17; i++)
- TileMap[i][13] = 'A';
- //TileMap[9][14] = 'B';
- //for (int i = 17; i < 19; i++)
- // TileMap[9][i] = 'B';
- //TileMap[9][22] = 'B';
- for (int i = 19; i < 22; i++)
- TileMap[6][i] = 'C';
- //TileMap[3][14] = 'B';
- for (int i = 1; i < 3; i++)
- TileMap[i][26] = '3';
- }
- if (sm.pusklever[2]) {
- currentLevel = 3;
- player.rect.left = 2079;
- player.rect.top = 172.5;
- offsetX = player.rect.left + 500;
- offsetY = 0;
- for (int i = 4; i < 9; i++)
- enemy[i].life = true;
- for (int i = 9; i < 16; i++)
- enemy[i].life = true;
- for (int i = 16; i < 26; i++)
- enemy[i].life = true;
- for (int i = 1; i < 3; i++)
- TileMap[i][26] = 'A';
- /*for (int i = 28; i < 30; i++)
- TileMap[2][i] = 'B';
- for (int i = 31; i < 33; i++)
- TileMap[2][i] = 'B';
- for (int i = 34; i < 36; i++)
- TileMap[2][i] = 'B';
- for (int i = 29; i < 32; i++)
- TileMap[6][i] = 'B';
- for (int i = 33; i < 36; i++)
- TileMap[6][i] = 'B';*/
- for (int i = 27; i < 29; i++)
- TileMap[11][i] = 'C';
- /*for (int i = 31; i < 33; i++)
- TileMap[11][i] = 'B';*/
- for (int i = 34; i < 36; i++)
- TileMap[11][i] = 'C';
- /*for (int i = 27; i < 31; i++)
- TileMap[14][i] = 'B';*/
- /*for (int i = 32; i < 36; i++)
- TileMap[14][i] = 'B';*/
- for (int i = 15; i < 17; i++)
- TileMap[i][39] = '4';
- }
- if (sm.pusklever[3]) {
- currentLevel = 4;
- player.rect.left = 3080;
- player.rect.top = 1250.5;
- offsetX = player.rect.left;
- offsetY = player.rect.top - 365;
- for (int i = 26; i < 36; i++)
- enemy[i].life = true;
- for (int i = 36; i < 44; i++)
- enemy[i].life = true;
- for (int i = 44; i < 53; i++)
- enemy[i].life = true;
- for (int i = 53; i < 60; i++)
- enemy[i].life = true;
- for (int i = 15; i < 17; i++)
- TileMap[i][39] = 'A';
- TileMap[15][41] = 'C';
- /*for (int i = 42; i < 46; i++)
- TileMap[11][i] = 'B';*/
- TileMap[8][47] = 'C';
- /*TileMap[8][48] = 'B';*/
- /*for (int i = 43; i < 46; i++)
- TileMap[4][i] = 'B';*/
- for (int i = 1; i < 3; i++)
- TileMap[i][52] = '5';
- }
- if (sm.pusklever[4]) {
- currentLevel = 5;
- boss.life = true;
- boss.numOfLife = 10;
- player.rect.left = 4112.69;
- player.rect.top = 172.5;
- for (int i = 1; i < 3; i++)
- TileMap[i][52] = 'A';
- for (int i = 0; i < 4; i++) {
- /*TileMap[4 + 3 * i][53] = 'B';*/
- TileMap[5 + 3 * i][54] = 'C';
- }
- for (int i = 0; i < 5; i++) {
- TileMap[2 + 3 * i][63] = 'C';
- /*TileMap[1 + 3 * i][64] = 'B';*/
- }
- }
- player.numOfLife = 3;
- player.life = true;
- play = true;
- }
- if (player.life && !player.damage && play && !isPause) {
- if (!_kbhit())
- if (player.speedY == 0) {
- if (player.rig)
- player.sprite.setTextureRect(IntRect(0, 0, 77, 65));
- else if (!player.rig)
- player.sprite.setTextureRect(IntRect(77, 0, -77, 65));
- }
- if (Keyboard::isKeyPressed(Keyboard::Left))
- player.speedX = -0.3;
- if (Keyboard::isKeyPressed(Keyboard::Right))
- player.speedX = 0.3;
- if (Keyboard::isKeyPressed(Keyboard::Up))
- if (player.onGround) {
- sound.jump.play();
- player.speedY = -0.5;
- if (player.rig)
- player.sprite.setTextureRect(IntRect(0, 81, 45, 65));
- else if (!player.rig)
- player.sprite.setTextureRect(IntRect(45, 81, -45, 65));
- player.onGround = false;
- }
- if (Keyboard::isKeyPressed(Keyboard::Space))
- if (player.onGround && bullet.go == 0) {
- sound.shooting.play();
- frame = 100;
- if (player.rig) {
- bullet.go = 1;
- bullet.rect.left = player.rect.left + 67;
- bullet.rect.top = player.rect.top + 20;
- }
- else {
- bullet.go = 2;
- bullet.rect.left = player.rect.left - 12;
- bullet.rect.top = player.rect.top + 18;
- }
- }
- if (Keyboard::isKeyPressed(Keyboard::Escape)) {
- sound.button.play();
- sound.music[1].setVolume(10);
- isPause = true;
- }
- }
- if (bullet.go == 0) {
- bullet.rect.left = player.rect.left;
- bullet.rect.top = player.rect.top;
- }
- else if (bullet.go == 1)
- bullet.speedX = 2;
- else if (bullet.go == 2)
- bullet.speedX = -2;
- if (frame != 0)
- if (player.speedY == 0) {
- if (player.rig)
- player.sprite.setTextureRect(IntRect(68, 80, 69, 61));
- else if (!player.rig)
- player.sprite.setTextureRect(IntRect(68 + 69, 80, -69, 61));
- frame--;
- }
- if (!enemy[0].life) {
- TileMap[11][3] = ' ';
- TileMap[12][3] = ' ';
- }
- else if (enemy[0].life) {
- TileMap[11][3] = 'K';
- TileMap[12][3] = 'K';
- }
- if (!enemy[1].life && !enemy[2].life && !enemy[3].life) {
- TileMap[1][25] = ' ';
- TileMap[2][25] = ' ';
- }
- else if (enemy[1].life && enemy[2].life && enemy[3].life) {
- TileMap[1][25] = 'K';
- TileMap[2][25] = 'K';
- }
- if (!enemy[4].life && !enemy[5].life && !enemy[6].life && !enemy[7].life && !enemy[8].life) {
- TileMap[1][36] = ' ';
- TileMap[2][36] = ' ';
- }
- else if (enemy[4].life && enemy[5].life && enemy[6].life && enemy[7].life && enemy[8].life) {
- TileMap[1][36] = 'K';
- TileMap[2][36] = 'K';
- }
- if (!enemy[9].life && !enemy[10].life && !enemy[10].life && !enemy[11].life && !enemy[12].life &&
- !enemy[13].life && !enemy[14].life && !enemy[15].life) {
- TileMap[5][28] = ' ';
- TileMap[6][28] = ' ';
- }
- else if (enemy[9].life && enemy[10].life && enemy[10].life && enemy[11].life && enemy[12].life &&
- enemy[13].life && enemy[14].life && enemy[15].life) {
- TileMap[5][28] = 'K';
- TileMap[6][28] = 'K';
- }
- if (!enemy[16].life && !enemy[17].life && !enemy[18].life && !enemy[19].life && !enemy[20].life &&
- !enemy[21].life && !enemy[22].life && !enemy[23].life && !enemy[24].life && !enemy[25].life) {
- TileMap[15][38] = ' ';
- TileMap[16][38] = ' ';
- }
- else if (enemy[16].life && enemy[17].life && enemy[18].life && enemy[19].life && enemy[20].life &&
- enemy[21].life && enemy[22].life && enemy[23].life && enemy[24].life && enemy[25].life) {
- TileMap[15][38] = 'K';
- TileMap[16][38] = 'K';
- }
- if (!enemy[26].life && !enemy[27].life && !enemy[28].life && !enemy[29].life && !enemy[30].life &&
- !enemy[31].life && !enemy[32].life && !enemy[33].life && !enemy[34].life && !enemy[35].life) {
- TileMap[13][49] = ' ';
- TileMap[13][50] = ' ';
- TileMap[13][51] = ' ';
- }
- else if (enemy[26].life && enemy[27].life && enemy[28].life && enemy[29].life && enemy[30].life &&
- enemy[31].life && enemy[32].life && enemy[33].life && enemy[34].life && enemy[35].life) {
- TileMap[13][49] = 'K';
- TileMap[13][50] = 'K';
- TileMap[13][51] = 'K';
- }
- if (!enemy[36].life && !enemy[37].life && !enemy[38].life && !enemy[39].life && !enemy[40].life &&
- !enemy[41].life && !enemy[42].life && !enemy[43].life) {
- TileMap[9][40] = ' ';
- TileMap[9][41] = ' ';
- }
- else if (enemy[36].life && enemy[37].life && enemy[38].life && enemy[39].life && enemy[40].life &&
- enemy[41].life && enemy[42].life && enemy[43].life) {
- TileMap[9][40] = 'K';
- TileMap[9][41] = 'K';
- }
- if (!enemy[44].life && !enemy[45].life && !enemy[46].life && !enemy[47].life &&
- !enemy[48].life && !enemy[49].life && !enemy[50].life) {
- TileMap[5][49] = ' ';
- TileMap[5][50] = ' ';
- TileMap[5][51] = ' ';
- }
- else if (enemy[44].life && enemy[45].life && enemy[46].life && enemy[47].life &&
- enemy[48].life && enemy[49].life && enemy[50].life) {
- TileMap[5][49] = 'K';
- TileMap[5][50] = 'K';
- TileMap[5][51] = 'K';
- }
- if (!enemy[53].life && !enemy[54].life && !enemy[55].life && !enemy[56].life && !enemy[57].life &&
- !enemy[58].life && !enemy[59].life)
- TileMap[1][51] = ' ';
- else if (enemy[53].life && enemy[54].life && enemy[55].life && enemy[56].life && enemy[57].life &&
- enemy[58].life && enemy[59].life)
- TileMap[1][51] = 'K';
- if (boss.life) {
- if (boss.rect.left < player.rect.left) {
- boss.sprite.setTextureRect(IntRect(0, 0, 102, 51));
- boss.rig = true;
- }
- else if (boss.rect.left > player.rect.left) {
- boss.sprite.setTextureRect(IntRect(102, 0, -102, 51));
- boss.rig = false;
- }
- if (boss.rect.top > player.rect.top && boss.rect.top < player.rect.top + player.rect.height &&
- bulletBos.go == 0 && currentLevel == 5) {
- if (boss.rig)
- bulletBos.go = 1;
- else
- bulletBos.go = 2;
- }
- if (bulletBos.go == 0) {
- if (boss.rig) {
- bulletBos.rect.left = boss.rect.left + 153;
- bulletBos.rect.top = boss.rect.top;
- }
- else if (!boss.rig) {
- bulletBos.rect.left = boss.rect.left;
- bulletBos.rect.top = boss.rect.top;
- }
- }
- else if (bulletBos.go == 1)
- bulletBos.speedX = 1;
- else if (bulletBos.go == 2)
- bulletBos.speedX = -1;
- if (boss.rect.left < bullet.rect.left && boss.rect.left + 153 > bullet.rect.left && boss.life &&
- boss.rect.top < bullet.rect.top && boss.rect.top + 77 > bullet.rect.top && bullet.go != 0) {
- sound.dieenemy.play();
- boss.numOfLife--;
- bullet.go = 0;
- }
- if (player.rect.intersects(boss.rect) && !player.damage) {
- sound.dieman.play();
- player.speedY = -0.5;
- player.numOfLife--;
- player.damage = true;
- bossdam = 1;
- }
- if (player.rect.left < bulletBos.rect.left && player.rect.left + 77 > bulletBos.rect.left && player.life && !player.damage &&
- player.rect.top < bulletBos.rect.top && player.rect.top + 65 > bulletBos.rect.top && bulletBos.go != 0) {
- sound.dieman.play();
- player.numOfLife--;
- player.damage = true;
- bossdam = 1;
- }
- }
- for (int i = 0; i < numOfEnemy; i++)
- if (enemy[i].life) {
- if (enemy[i].rect.left < bullet.rect.left && enemy[i].rect.left + 10 > bullet.rect.left &&
- enemy[i].rect.top < bullet.rect.top && enemy[i].rect.top + 50 > bullet.rect.top && bullet.go != 0) {
- sound.dieenemy.play();
- enemy[i].life = false;
- bullet.go = 0;
- }
- if (player.rect.intersects(enemy[i].rect) && !player.damage) {
- sound.dieman.play();
- player.numOfLife--;
- player.speedY = -0.5;
- player.damage = true;
- if (i == 0)
- enemydam = 1;
- else if (i >= 1 && i < 4)
- enemydam = 2;
- else if (i >= 4 && i < 9)
- enemydam = 3;
- else if (i >= 9 && i < 16)
- enemydam = 4;
- else if (i >= 16 && i < 26)
- enemydam = 5;
- else if (i >= 26 && i < 36)
- enemydam = 6;
- else if (i >= 36 && i < 44)
- enemydam = 7;
- else if (i >= 44 && i < 53)
- enemydam = 8;
- else if (i >= 53 && i < 60)
- enemydam = 9;
- }
- }
- if (player.damage) {
- player.damFrame += 0.006;
- switch (int(player.damFrame))
- {
- case 1:
- if (player.rig)
- player.sprite.setTextureRect(IntRect(229, 72, 72, 65));
- else
- player.sprite.setTextureRect(IntRect(301, 72, -72, 65));
- break;
- case 2:
- if (player.rig)
- player.sprite.setTextureRect(IntRect(308, 95, 76, 34));
- else
- player.sprite.setTextureRect(IntRect(384, 95, -76, 34));
- break;
- case 3:
- if (player.rig)
- player.sprite.setTextureRect(IntRect(391, 101, 80, 31));
- else
- player.sprite.setTextureRect(IntRect(471, 101, -80, 31));
- break;
- case 4:
- if (player.numOfLife > 0) {
- if (enemydam != 0)
- switch (enemydam)
- {
- case 1:
- player.rect.left = 931.7;
- player.rect.top = 942.5;
- break;
- case 2:
- player.rect.left = 1312.52;
- player.rect.top = 172.5;
- break;
- case 3:
- player.rect.left = 2093.68;
- player.rect.top = 172.5;
- break;
- case 4:
- player.rect.left = 2933.7;
- player.rect.top = 480.5;
- break;
- case 5:
- player.rect.left = 2775.62;
- player.rect.top = 1173.5;
- break;
- case 6:
- player.rect.left = 3176.79;
- player.rect.top = 1173.5;
- break;
- case 7:
- player.rect.left = 3615.72;
- player.rect.top = 865.5;
- break;
- case 8:
- player.rect.left = 3330.41;
- player.rect.top = 557.5;
- break;
- case 9:
- player.rect.left = 3309.64;
- player.rect.top = 95.5;
- break;
- }
- else if (player.blockdam != 0)
- switch (player.blockdam)
- {
- case 1:
- player.rect.left = 931.7;
- player.rect.top = 942.5;
- break;
- case 2:
- player.rect.left = 584.22;
- player.rect.top = 711.5;
- break;
- case 3:
- player.rect.left = 1362.86;
- player.rect.top = 711.5;
- break;
- case 4:
- player.rect.left = 2173.41;
- player.rect.top = 865.5;
- break;
- case 5:
- player.rect.left = 3626.1;
- player.rect.top = 865.5;
- break;
- case 6:
- player.rect.left = 3311.82;
- player.rect.top = 557.5;
- break;
- case 7:
- player.rect.left = 4081;
- player.rect.top = 172.5;
- offsetY = 0;
- break;
- }
- else if (bossdam == 1) {
- player.rect.left = 4081;
- player.rect.top = 172.5;
- offsetY = 0;
- }
- if (player.rig)
- player.sprite.setTextureRect(IntRect(0, 0, 77, 65));
- else if (!player.rig)
- player.sprite.setTextureRect(IntRect(77, 0, -77, 65));
- enemydam = 0;
- player.blockdam = 0;
- bossdam = 0;
- player.damage = false;
- player.damFrame = 0;
- }
- break;
- }
- }
- score.setTextureRect(IntRect(27 * (currentLevel - 1), 0, 27, 36));
- if (player.rect.left > 500 && player.rect.left < 4582)
- offsetX = player.rect.left - 500;
- if (player.rect.top > 250 && player.rect.top < 1135)
- offsetY = player.rect.top - 250;
- player.update(time);
- bullet.update(time);
- for (int i = 0; i < numOfEnemy; i++)
- enemy[i].update(time);
- boss.update(time);
- bulletBos.update(time);
- window.clear(Color::White);
- background.setPosition(-offsetX, -offsetY);
- window.draw(background);
- for (int i = 0; i < height; i++)
- for (int j = 0; j < width; j++) {
- if (TileMap[i][j] == 'A')
- plat.setTextureRect(IntRect(0, 0, tileSize, tileSize));
- if (TileMap[i][j] == 'B')
- plat.setTextureRect(IntRect(tileSize, 0, tileSize, tileSize));
- if (TileMap[i][j] == 'C')
- plat.setTextureRect(IntRect(tileSize * 2, 0, tileSize, tileSize));
- if (TileMap[i][j] == 'X')
- plat.setTextureRect(IntRect(tileSize * 3, 0, tileSize, tileSize));
- if (TileMap[i][j] == 'F')
- plat.setTextureRect(IntRect(tileSize * 4, 0, tileSize, tileSize));
- if (TileMap[i][j] == '2')
- plat.setTextureRect(IntRect(0, tileSize, tileSize, tileSize));
- if (TileMap[i][j] == '3')
- plat.setTextureRect(IntRect(tileSize, tileSize, tileSize, tileSize));
- if (TileMap[i][j] == '4')
- plat.setTextureRect(IntRect(tileSize * 2, tileSize, tileSize, tileSize));
- if (TileMap[i][j] == '5')
- plat.setTextureRect(IntRect(tileSize * 3, tileSize, tileSize, tileSize));
- if (TileMap[i][j] == 'K')
- plat.setTextureRect(IntRect(tileSize * 4, 0, tileSize, tileSize));
- if (TileMap[i][j] == ' ')
- continue;
- plat.setPosition(j * tileSize - offsetX, i * tileSize - offsetY);
- window.draw(plat);
- }
- window.draw(player.sprite);
- if (bullet.go != 0)
- window.draw(bullet.sprite);
- for (int i = 0; i < numOfEnemy; i++)
- window.draw(enemy[i].sprite);
- window.draw(boss.sprite);
- if (bulletBos.go != 0)
- window.draw(bulletBos.sprite);
- if (play || isWin || isDie || isPause) {
- for (int i = 0; i < player.numOfLife; i++)
- window.draw(life[i]);
- for (int i = 0; i < boss.numOfLife; i++)
- if (currentLevel == 5)
- window.draw(lifeBoss[i]);
- window.draw(lvl);
- window.draw(score);
- if (isWin || isDie || isPause) {
- if (isWin && !isDie && !isPause) {
- if (currentLevel < 5)
- window.draw(urpro);
- else
- window.draw(win);
- }
- else if (!isWin && isDie && !isPause)
- window.draw(ki);
- else if (!isWin && !isDie && isPause)
- window.draw(nadpause);
- if (currentLevel < 5 && !isDie && !isPause)
- window.draw(sledur);
- else if (isPause)
- window.draw(nadprod);
- window.draw(naczan);
- window.draw(butmen);
- }
- }
- if (isMenu) {
- window.draw(naz);
- window.draw(butplay);
- window.draw(exit);
- }
- if (game) {
- window.draw(nazurav);
- for (int i = 0; i < 5; i++)
- window.draw(butlev[i]);
- window.draw(back);
- }
- window.display();
- }
- return 0;
- }
- class SetMenu {
- public:
- bool pusklever[5], blv[5];
- SetMenu() {
- for (int i = 0; i < 5; i++)
- pusklever[i] = false;
- blv[0] = true;
- for (int i = 1; i < 5; i++)
- blv[i] = false;
- }
- };
- #include <SFML/Audio.hpp>
- using namespace sf;
- class SetSound {
- public:
- SoundBuffer s1, s2, s3, s4, s5, s6, s7;
- Sound button, jump, shooting, bonus, dieenemy, dieman, win;
- Music music[2];
- SetSound() {
- s1.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/button.ogg");
- s2.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/jump.ogg");
- s3.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/shooting.ogg");
- s4.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/bonus.ogg");
- s5.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/dieenemy.ogg");
- s6.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/dieman.ogg");
- s7.loadFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/win.ogg");
- button.setBuffer(s1);
- jump.setBuffer(s2);
- shooting.setBuffer(s3);
- bonus.setBuffer(s4);
- dieenemy.setBuffer(s5);
- dieman.setBuffer(s6);
- win.setBuffer(s7);
- music[0].openFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/Game.ogg");
- music[1].openFromFile("C:/Users/Dimaland/Desktop/Mario/ProjectMario/Paint/sound/Play.ogg");
- for (int i = 0; i < 2; i++) {
- music[i].setVolume(25);
- music[i].setLoop(true);
- }
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement