Untitled
unknown
plain_text
a month ago
48 kB
5
Indexable
#include<SFML/Graphics.hpp>
#include<SFML/Audio.hpp>
#include<vector>
#include <sstream>
#include <fstream>
#include<string>
#include <iomanip>
#include<iostream>
using namespace std;
using namespace sf;
const int MAIN = 4, SETTINGS = 4, PAUSE = 4, CREDIT = 8, WIN = 5, LOSE = 3, TIMEOUT = 3, MAP = 6;
struct menus {
Font font;
Text menutxt[MAIN], settingstxt[SETTINGS], creditxt[CREDIT], pausetxt[PAUSE], wintxt[WIN], losetxt[LOSE], timeouttxt[TIMEOUT], maptxt[MAP];
Texture maintexture, maptexture, menustexture, backtexture, back2texture, back3texture, back4texture;
Sprite mainbackground, mapbackground, menusbackground, back, back2, back3, back4;
string
mainstr[MAIN] = { "Play","Settings","Credit","Exit" },
settingstr[SETTINGS] = { "Sound up","Sound down","Mute","Back" },
creditstr[CREDIT] = { "Menna tullah sherif Mohamed Mohamed Ibrahim","Malak Mohamed Ahmed Yassin Ahmed Nassar ",
"Mennahtullah Ahmed Mohamed Yussef Fayed","Nada Ahmed Mohamed Salah El-Deen Ahmed",
"Naema Ahmed Yahia Mohamed Taha","Nada Ahmed El-Sayed Abd-Elraouf",
"Jana Sameh Abdelazim Mohammed","Back" },
pausestr[PAUSE] = { "Sound on","Mute","Map","Continue" },
winstr[WIN] = { "WIN!","Score","Retry","Map","Next" },
losestr[LOSE] = { "Sheep Lose!","Retry","Map" },
timeoutstr[TIMEOUT] = { "Time is Out!","Retry","Map" },
mapstr[MAP] = { "The FOREST","On The ROOFS","The MILL","The GIANT WALLS","The BARN","Back" };
}menu;
struct Gsound {
SoundBuffer winbuff, losebuff, walkbuff, runbuff, jump1buff, jump2buff, jump3buff, fallbuff, menubuff, shaunbuff, timmybuff, shirleybuff, introbuff, endbuff;//complete names
Sound win, lose, walk, run, jumpshirley, jumpshaun, jumptimmy, menu, shaun, timmy, shirley, intro, end;
bool winning = true, losing = true, walking = false, running = false,
shirleyjumping = false, shaunjumping = false, timmyjumping = false,
menusound = true, introsound = true, endsound = true,
shaunvoice = false, shirleyvoice = false, timmyvoice = false;
}soundgeneral;
struct States {
bool isdie = false, iswin = false, istimeout = false;
}state;
struct Forest {
Texture Level1_background_txt, Level4_background_txt, Hay_lv1_txt, Arrow_sign_lvl1_txt, LongStick_lvl1_txt, ShortStick_lvl1_txt, Stone_wall_lvl1_txt, Floating_pillar_lvl1_txt;
Sprite Level1_background_sp, Level4_background_sp, Hay_lvl1_sp, Arrow_sign_lvl1_sp, LongStick_lvl1_sp, ShortStick_lvl1_sp, Stone_wall_lvl1_sp, Floating_pillar_lvl1_sp;
SoundBuffer haybuff, woodbuff, backbuff;
Sound hayfall, wood, backforest;
bool hayfalling = false, woodfalling = false, forestsound = true;
}soundforest;
struct OnTheRoof {
Texture lvl2_background_txt, home_lvl2_txt, bridge_lvl2_txt, wood_lvl2_txt, sign_lvl2_txt, box_lvl2_txt;
Sprite lvl2_background_sp, home_lvl2_sp, bridge_lvl2_sp, wood_lvl2_sp, sign_lvl2_sp, box_lvl2_sp;
SoundBuffer moveobjectbuff, jumpwoodbuff, walkwoodbuff, back2buff;
Sound objectmove, jumpwood, walkwood, backontheroof;
bool objectmoving = false, woodjumping = false, woodwalking = false, ontheroofsound = true;
}soundontheroof;
struct Mill {
Texture Background_lvl3_txt, Tunnel_lvl3_txt, Blue_lvl3_txt, Wooden_lvl3_txt, Rock_lvl3_txt,
Button_lvl3_txt, Box_lvl3_txt, Arrow_Sign_lvl3_txt, Button2_lvl3_txt,
Red1_lvl3_txt, Red2_lvl3_txt, Red3_lvl3_txt, Bomb_lvl3_txt;
Sprite Background_lvl3_sp, Tunnel_lvl3_sp, Blue_lvl3_sp, Wooden_Column_lvl3_sp, RockColumn_lvl3_sp,
Button_lvl3_sp, Box_lvl3_sp, Arrow_Sign_lvl3_sp, Button_Pressed_lvl3_sp,
Red_Ballon1_lvl3_sp, Red_Ballon2_lvl3_sp, Red_Ballon3_lvl3_sp, Bomb_lvl3_sp;
SoundBuffer ballonbuff, timerbombbuff, bombbuff, tunnelfallbuff, tunnelwalkbuff, boxbuff, buttonbuff, doorbuff, back3buff;
Sound ballon, timerbomb, bomb, tunnelfall, tunnelwalk, button, box, door, backmill;
bool ballonsound = false, isballonbomb = false, isbombed = false,
tunnelfalling = false, tunnelwalking = false, boxmoving = false,
buttonispressed = false, buttonnotpressed = false, dooropen = false, millsound = true;
}soundmill;
struct TheGiantWalls {//back theme change //check the theme
Texture Level4_background_txt, Button_lv4_txt, Button2_lv4_txt, Arrow_sign_lvl4_txt, Swichable_Barrier_lvl4_txt, Car_Tire_lvl4_txt, Stone_Pillar_lvl4_txt, Stick_lvl4_txt;
Sprite Level4_background_sp, Button_lv4_sp, Button2_lv4_sp, Arrow_sign_lvl4_sp, Swichable_Barrier_lvl4_sp, Car_Tire_lvl4_sp, Stone_Pillar_lvl4_sp, Stick_lvl4_sp;
SoundBuffer doorbuff, tirebuff, buttonbuff, tirefallbuff, logbuff, logwalkbuff, logjumpbuff, back4buff;
Sound door, tire, button, tirefall, log, logwalk, logjump, backgiantwalls;
bool doorsound = false, tirerolling = false, tirefalling = false, logmoving = false, buttonpressed = false, giantwallssound = true;
}soundgiantwalls;
struct Barn {
Texture background_level5_txt, sign_lvl5_txt, stonenight_lvl5_txt, stick_lvl5_txt, button_lvl5_txt, cage_lvl5_txt;
Sprite background_level5_sp, sign_lvl5_sp, stonenight_lvl5_sp, stick_lvl5_sp, button_lvl5_sp, cage_lvl5_sp;
Sprite shadowSign, shadowStick, shadowCage;
SoundBuffer woodjumpbuff, prisonbuff, buttonbuff, foxbuff, barndoorbuff, dangerbuff, back5buff;
Sound woodjump, prison, button, fox, barndoor, danger, backbarn;
bool prisonfalling = false, woodjumping = false,
buttonispressed = false, foxsound = false,
barndoorsound = false, isdanger = false,
barnsound = true;
}soundbarn;
int Windows[11] = { 0,1,2,3,4,5,6,7,8,9,10 }, currentwindow = 0, selected = 0, selectedlvl = 0, selectedop = 2;//0=main,1=map,2=lvl,3=settings,4=credit,5=pause,6=win,7=lose,8=timeout,9=intro,10=ending
Event event;
void loadmenus(RenderWindow& window) {
if (!menu.font.loadFromFile("assets\\menu background\\Lora-SemiBoldItalic.ttf"))
cout << "Load Failed";
menu.maintexture.loadFromFile("assets\\menu background\\main.jpeg");
menu.maptexture.loadFromFile("assets\\menu background\\mapbackground.jpeg");
menu.menustexture.loadFromFile("assets\\menu background\\menusbackground.png");
menu.backtexture.loadFromFile("assets\\menu background\\back button.jpeg");
menu.back2texture.loadFromFile("assets\\menu background\\back button2.jpeg");
menu.back3texture.loadFromFile("assets\\menu background\\back button2.jpeg");
menu.back4texture.loadFromFile("assets\\menu background\\back button4.jpeg");
Vector2u mainSize = menu.maintexture.getSize(), mapSize = menu.maptexture.getSize(), menusSize = menu.menustexture.getSize(), backSize = menu.backtexture.getSize();
Vector2u windowSize = window.getSize();
float mainScaleX = (float)windowSize.x / mainSize.x, mapScaleX = (float)windowSize.x / mapSize.x, menusScaleX = (float)windowSize.x / menusSize.x, backScaleX = (float)windowSize.x / backSize.x;
float mainScaleY = (float)windowSize.y / mainSize.y, mapScaleY = (float)windowSize.y / mapSize.y, menusScaleY = (float)windowSize.y / menusSize.y, backScaleY = (float)windowSize.y / backSize.y;
menu.mainbackground.setTexture(menu.maintexture);
menu.mapbackground.setTexture(menu.maptexture);
menu.menusbackground.setTexture(menu.menustexture);
menu.back.setTexture(menu.backtexture);
menu.back2.setTexture(menu.back2texture);
menu.back3.setTexture(menu.back3texture);
menu.back4.setTexture(menu.back4texture);
menu.mainbackground.setScale(mainScaleX, mainScaleY);
menu.mapbackground.setScale(mapScaleX, mapScaleY);
menu.menusbackground.setScale(menusScaleX, menusScaleY);
menu.back.setScale(backScaleX, backScaleY);
menu.back2.setScale(backScaleX, backScaleY);
menu.back3.setScale(backScaleX, backScaleY);
menu.back4.setScale(backScaleX, backScaleY);
for (int i = 0; i < MAIN; i++) {
menu.menutxt[i].setString(menu.mainstr[i]);
menu.menutxt[i].setFont(menu.font);
menu.menutxt[i].setCharacterSize(50);
menu.menutxt[i].setPosition(600, 260 + 90 * i);
menu.menutxt[i].setFillColor(Color::White);
}
menu.menutxt[0].setFillColor(Color::Black);
for (int i = 0; i < SETTINGS; i++) {
menu.settingstxt[i].setString(menu.settingstr[i]);
menu.settingstxt[i].setFont(menu.font);
menu.settingstxt[i].setCharacterSize(50);
menu.settingstxt[i].setPosition(520, 280 + 50 * i);
menu.settingstxt[i].setFillColor(Color::White);
}
menu.settingstxt[3].setPosition(580, 550);
menu.settingstxt[0].setFillColor(Color::Black);
for (int i = 0; i < CREDIT; i++) {
menu.creditxt[i].setString(menu.creditstr[i]);
menu.creditxt[i].setFont(menu.font);
menu.creditxt[i].setCharacterSize(20);
menu.creditxt[i].setPosition(420, 250 + 30 * i);
menu.creditxt[i].setFillColor(Color::White);
}
menu.creditxt[7].setPosition(580, 550);
menu.creditxt[7].setCharacterSize(50);
for (int i = 0; i < PAUSE; i++) {
menu.pausetxt[i].setString(menu.pausestr[i]);
menu.pausetxt[i].setFont(menu.font);
menu.pausetxt[i].setCharacterSize(50);
menu.pausetxt[i].setFillColor(Color::White);
}
menu.pausetxt[0].setPosition(540, 240);
menu.pausetxt[1].setPosition(580, 300);
menu.pausetxt[2].setPosition(590, 365);
menu.pausetxt[3].setPosition(535, 430);
menu.pausetxt[0].setFillColor(Color::Black);
for (int i = 0; i < WIN; i++) {
menu.wintxt[i].setString(menu.winstr[i]);
menu.wintxt[i].setFont(menu.font);
menu.wintxt[i].setCharacterSize(50);
menu.wintxt[i].setFillColor(Color::White);
}
menu.wintxt[0].setPosition(580, 240);
menu.wintxt[1].setPosition(580, 300);
menu.wintxt[2].setPosition(450, 365);
menu.wintxt[3].setPosition(690, 365);
menu.wintxt[4].setPosition(590, 430);
menu.wintxt[2].setFillColor(Color::Black);
for (int i = 0; i < LOSE; i++) {
menu.losetxt[i].setString(menu.losestr[i]);
menu.losetxt[i].setFont(menu.font);
menu.losetxt[i].setCharacterSize(50);
menu.losetxt[i].setFillColor(Color::White);
}
menu.losetxt[0].setPosition(500, 250);
menu.losetxt[1].setPosition(575, 330);
menu.losetxt[2].setPosition(575, 380);
menu.losetxt[1].setFillColor(Color::Black);
for (int i = 0; i < TIMEOUT; i++) {
menu.timeouttxt[i].setString(menu.timeoutstr[i]);
menu.timeouttxt[i].setFont(menu.font);
menu.timeouttxt[i].setCharacterSize(50);
//menu.timeouttxt[i].setPosition(500, 200 + 100 * i);
menu.timeouttxt[i].setFillColor(Color::White);
}
menu.timeouttxt[0].setPosition(500, 250);
menu.timeouttxt[1].setPosition(575, 330);
menu.timeouttxt[2].setPosition(575, 380);
menu.timeouttxt[1].setFillColor(Color::Black);
for (int i = 0; i < MAP; i++) {
menu.maptxt[i].setString(menu.mapstr[i]);
menu.maptxt[i].setFont(menu.font);
menu.maptxt[i].setCharacterSize(30);
menu.maptxt[i].setFillColor(Color::White);
}
menu.maptxt[0].setPosition(50, 560);
menu.maptxt[1].setPosition(300, 600);
menu.maptxt[2].setPosition(600, 560);
menu.maptxt[3].setPosition(800, 610);
menu.maptxt[4].setPosition(1100, 560);
menu.maptxt[5].setPosition(600, 630);
menu.maptxt[0].setFillColor(Color::Black);
}
void loadgeneral(RenderWindow& window) {
soundgeneral.winbuff.loadFromFile("assets\\general\\win approved.wav");
soundgeneral.losebuff.loadFromFile("assets\\general\\lose approved.wav");
soundgeneral.walkbuff.loadFromFile("assets\\general\\walk approved.wav");
soundgeneral.runbuff.loadFromFile("assets\\general\\run approved.wav");
soundgeneral.jump1buff.loadFromFile("assets\\general\\shirley jump.wav");
soundgeneral.jump2buff.loadFromFile("assets\\general\\shaun jump.wav");
soundgeneral.jump3buff.loadFromFile("assets\\general\\timmy jump.wav");
soundgeneral.menubuff.loadFromFile("assets\\general\\menu.ogg");
soundgeneral.shaunbuff.loadFromFile("assets\\general\\shaun approved.wav");
soundgeneral.timmybuff.loadFromFile("assets\\general\\timmy approved.wav");
soundgeneral.shirleybuff.loadFromFile("assets\\general\\shirley.wav");
soundgeneral.introbuff.loadFromFile("assets\\general\\intro approved.ogg");
soundgeneral.endbuff.loadFromFile("assets\\general\\end.ogg");
soundgeneral.win.setBuffer(soundgeneral.winbuff);
soundgeneral.lose.setBuffer(soundgeneral.losebuff);
soundgeneral.walk.setBuffer(soundgeneral.walkbuff);
soundgeneral.run.setBuffer(soundgeneral.runbuff);
soundgeneral.jumpshirley.setBuffer(soundgeneral.jump1buff);
soundgeneral.jumpshaun.setBuffer(soundgeneral.jump2buff);
soundgeneral.jumptimmy.setBuffer(soundgeneral.jump3buff);
soundgeneral.menu.setBuffer(soundgeneral.menubuff);
soundgeneral.shaun.setBuffer(soundgeneral.shaunbuff);
soundgeneral.timmy.setBuffer(soundgeneral.timmybuff);
soundgeneral.shirley.setBuffer(soundgeneral.shirleybuff);
soundgeneral.intro.setBuffer(soundgeneral.introbuff);
soundgeneral.end.setBuffer(soundgeneral.endbuff);
soundgeneral.win.setVolume(50.f);
soundgeneral.lose.setVolume(50.f);
soundgeneral.walk.setVolume(50.f);
soundgeneral.run.setVolume(50.f);
soundgeneral.jumpshirley.setVolume(50.f);
soundgeneral.jumpshaun.setVolume(50.f);
soundgeneral.jumptimmy.setVolume(50.f);
soundgeneral.menu.setVolume(50.f);
soundgeneral.shaun.setVolume(50.f);
soundgeneral.timmy.setVolume(50.f);
soundgeneral.shirley.setVolume(50.f);
soundgeneral.intro.setVolume(80.f);
soundgeneral.end.setVolume(80.f);
}
void loadforest(RenderWindow& window) {
soundforest.Level1_background_txt.loadFromFile("assets\\level 1 jungle\\Level 1 background.jpg");
soundforest.Level1_background_sp.setTexture(soundforest.Level1_background_txt);
soundforest.haybuff.loadFromFile("assets\\level 1 forest\\wheat fall.wav");
soundforest.woodbuff.loadFromFile("assets\\level 1 forest\\wood.wav");
soundforest.backbuff.loadFromFile("assets\\level 1 forest\\Forest sound.ogg");
soundforest.Hay_lv1_txt.loadFromFile("assets\\level 1 jungle\\Hay.png");
soundforest.Arrow_sign_lvl1_txt.loadFromFile("assets\\level 1 jungle\\Arrow direction sign.png");
soundforest.LongStick_lvl1_txt.loadFromFile("assets\\level 1 jungle\\long stick.png");
soundforest.LongStick_lvl1_sp.setTexture(soundforest.LongStick_lvl1_txt);
soundforest.LongStick_lvl1_sp.setScale(0.25f, 0.21f);
soundforest.LongStick_lvl1_sp.setPosition(725, 440);
soundforest.Arrow_sign_lvl1_sp.setTexture(soundforest.Arrow_sign_lvl1_txt);
soundforest.Arrow_sign_lvl1_sp.setScale(0.098f, 0.098f);
soundforest.Arrow_sign_lvl1_sp.setPosition(1000, 380);
soundforest.Hay_lvl1_sp.setTexture(soundforest.Hay_lv1_txt);
soundforest.Hay_lvl1_sp.setScale(1.0f, 0.9f);
soundforest.Hay_lvl1_sp.setPosition(627, 330);
soundforest.ShortStick_lvl1_txt.loadFromFile("assets\\level 1 jungle\\short stick.png");
soundforest.ShortStick_lvl1_sp.setTexture(soundforest.ShortStick_lvl1_txt);
soundforest.ShortStick_lvl1_sp.setOrigin(0, 0);
soundforest.ShortStick_lvl1_sp.setPosition(695, 440);
soundforest.Stone_wall_lvl1_txt.loadFromFile("assets\\level 1 jungle\\Stone wall.png");
soundforest.Stone_wall_lvl1_sp.setTexture(soundforest.Stone_wall_lvl1_txt);
soundforest.Stone_wall_lvl1_sp.setScale(1.05f, 1.0f);
soundforest.Stone_wall_lvl1_sp.setPosition(380, 510);
soundforest.Floating_pillar_lvl1_txt.loadFromFile("assets\\level 1 jungle\\floating pillar.png");
soundforest.Floating_pillar_lvl1_sp.setTexture(soundforest.Floating_pillar_lvl1_txt);
soundforest.Floating_pillar_lvl1_sp.setScale(0.9f, 0.9f);
soundforest.Floating_pillar_lvl1_sp.setPosition(776, 437.2);
Vector2u textureSize = soundforest.Level1_background_txt.getSize();
Vector2u windowSize = window.getSize();
float scaleX = (float)windowSize.x / textureSize.x;
float scaleY = (float)windowSize.y / textureSize.y;
soundforest.Level1_background_sp.setScale(scaleX, scaleY);
soundforest.hayfall.setBuffer(soundforest.haybuff);
soundforest.wood.setBuffer(soundforest.woodbuff);
soundforest.backforest.setBuffer(soundforest.backbuff);
soundforest.hayfall.setVolume(50.f);
soundforest.wood.setVolume(50.f);
soundforest.backforest.setVolume(80.f);
}
void loadontheroof(RenderWindow& window) {
soundontheroof.lvl2_background_txt.loadFromFile("assets\\level2\\background.png");
soundontheroof.lvl2_background_sp.setTexture(soundontheroof.lvl2_background_txt);
Vector2u textureSize = soundontheroof.lvl2_background_txt.getSize();
Vector2u windowSize = window.getSize();
float scalex = (float)windowSize.x / textureSize.x;
float scaley = (float)windowSize.y / textureSize.y;
soundontheroof.lvl2_background_sp.setScale(scalex, scaley);
soundontheroof.home_lvl2_txt.loadFromFile("assets\\level2\\home.png");
soundontheroof.home_lvl2_sp.setTexture(soundontheroof.home_lvl2_txt);
soundontheroof.home_lvl2_sp.setScale(0.97f, 0.97f);
soundontheroof.home_lvl2_sp.setPosition(840, 450);
soundontheroof.bridge_lvl2_txt.loadFromFile("assets\\level2\\bridge.png");
soundontheroof.bridge_lvl2_sp.setTexture(soundontheroof.bridge_lvl2_txt);
soundontheroof.bridge_lvl2_sp.setScale(0.7f, 0.7f);
soundontheroof.bridge_lvl2_sp.setPosition(30, 475);
soundontheroof.wood_lvl2_txt.loadFromFile("assets\\level2\\wood.png");
soundontheroof.wood_lvl2_sp.setTexture(soundontheroof.wood_lvl2_txt);
soundontheroof.wood_lvl2_sp.setScale(0.3f, 0.3f);
soundontheroof.wood_lvl2_sp.setPosition(235, 325);
soundontheroof.sign_lvl2_txt.loadFromFile("assets\\level2\\sign.png");
soundontheroof.sign_lvl2_sp.setTexture(soundontheroof.sign_lvl2_txt);
soundontheroof.sign_lvl2_sp.setScale(0.35f, 0.345f);
soundontheroof.sign_lvl2_sp.setPosition(1100, 344);
soundontheroof.box_lvl2_txt.loadFromFile("assets\\level2\\box.png");
soundontheroof.box_lvl2_sp.setTexture(soundontheroof.box_lvl2_txt);
soundontheroof.box_lvl2_sp.setScale(0.25f, 0.25f);
soundontheroof.box_lvl2_sp.setPosition(550, 380);
soundontheroof.moveobjectbuff.loadFromFile("assets\\level 2 on the roof\\wood slide.wav");
soundontheroof.jumpwoodbuff.loadFromFile("assets\\level 2 on the roof\\wood.wav");
soundontheroof.back2buff.loadFromFile("assets\\level 2 on the roof\\On The Roof.ogg");
soundontheroof.walkwoodbuff.loadFromFile("assets\\level 2 on the roof\\wood walk.wav");
soundontheroof.objectmove.setBuffer(soundontheroof.moveobjectbuff);
soundontheroof.jumpwood.setBuffer(soundontheroof.jumpwoodbuff);
soundontheroof.backontheroof.setBuffer(soundontheroof.back2buff);
soundontheroof.walkwood.setBuffer(soundontheroof.walkwoodbuff);
soundontheroof.objectmove.setVolume(50.f);
soundontheroof.jumpwood.setVolume(50.f);
soundontheroof.walkwood.setVolume(50.f);
soundontheroof.backontheroof.setVolume(80.f);
}
void loadmill(RenderWindow& window) {
soundmill.tunnelfallbuff.loadFromFile("assets\\level 3 the mill\\falling in the tunnel.wav");
soundmill.tunnelwalkbuff.loadFromFile("assets\\level 3 the mill\\walking tunnel.wav");
soundmill.boxbuff.loadFromFile("assets\\level 3 the mill\\wood slide.wav");
soundmill.buttonbuff.loadFromFile("assets\\level 3 the mill\\button on.wav");
soundmill.doorbuff.loadFromFile("assets\\level 3 the mill\\wood.wav");
soundmill.back3buff.loadFromFile("assets\\level 3 the mill\\The mill Back.ogg");
soundmill.ballonbuff.loadFromFile("assets\\level 3 the mill\\ballon pop.wav");
soundmill.timerbombbuff.loadFromFile("assets\\level 3 the mill\\timer bomb.wav");
soundmill.bombbuff.loadFromFile("assets\\level 3 the mill\\bomb exposure.wav");
soundmill.Background_lvl3_txt.loadFromFile("assets\\background3.png");
soundmill.Background_lvl3_sp.setTexture(soundmill.Background_lvl3_txt);
soundmill.Background_lvl3_sp.setScale(0.8f, 0.81f);
soundmill.Tunnel_lvl3_txt.loadFromFile("assets\\tunnel.png");
soundmill.Tunnel_lvl3_sp.setTexture(soundmill.Tunnel_lvl3_txt);
soundmill.Tunnel_lvl3_sp.setPosition(550, 510);
soundmill.Tunnel_lvl3_sp.setScale(1.05, 1.05);
soundmill.Blue_lvl3_txt.loadFromFile("assets\\blue.png");
soundmill.Blue_lvl3_sp.setTexture(soundmill.Blue_lvl3_txt);
soundmill.Blue_lvl3_sp.setPosition(710, 150);
soundmill.Blue_lvl3_sp.setScale(0.33, 0.33);
soundmill.Wooden_lvl3_txt.loadFromFile("assets\\wooden.png");
soundmill.Wooden_Column_lvl3_sp.setTexture(soundmill.Wooden_lvl3_txt);
soundmill.Wooden_Column_lvl3_sp.setPosition(668, 135);
soundmill.Wooden_Column_lvl3_sp.setScale(0.34, 0.34);
soundmill.Rock_lvl3_txt.loadFromFile("assets\\rock.png");
soundmill.RockColumn_lvl3_sp.setTexture(soundmill.Rock_lvl3_txt);
soundmill.RockColumn_lvl3_sp.setPosition(350, 200);
soundmill.RockColumn_lvl3_sp.setScale(0.42, 0.42);
soundmill.Button_lvl3_txt.loadFromFile("assets\\button.png");
soundmill.Button_lvl3_sp.setTexture(soundmill.Button_lvl3_txt);
soundmill.Button_lvl3_sp.setPosition(730, 492);
soundmill.Button_lvl3_sp.setScale(0.035, 0.035);
soundmill.Box_lvl3_txt.loadFromFile("assets\\box.png");
soundmill.Box_lvl3_sp.setTexture(soundmill.Box_lvl3_txt);
soundmill.Box_lvl3_sp.setPosition(540, 445);
soundmill.Box_lvl3_sp.setScale(0.25, 0.25);
soundmill.Arrow_Sign_lvl3_txt.loadFromFile("assets\\arrow.png");
soundmill.Arrow_Sign_lvl3_sp.setTexture(soundmill.Arrow_Sign_lvl3_txt);
soundmill.Arrow_Sign_lvl3_sp.setPosition(1100, 420);
soundmill.Arrow_Sign_lvl3_sp.setScale(0.35, 0.35);
soundmill.Button2_lvl3_txt.loadFromFile("assets\\button2.png");
soundmill.Button_Pressed_lvl3_sp.setTexture(soundmill.Button2_lvl3_txt);
soundmill.Button_Pressed_lvl3_sp.setPosition(1100, 420);
soundmill.Button_Pressed_lvl3_sp.setScale(0.35, 0.35);
soundmill.Red1_lvl3_txt.loadFromFile("assets\\red_ball.png");
soundmill.Red_Ballon1_lvl3_sp.setTexture(soundmill.Red1_lvl3_txt);
soundmill.Red_Ballon1_lvl3_sp.setPosition(340, 435);
soundmill.Red_Ballon1_lvl3_sp.setScale(0.13, 0.13);
soundmill.Red2_lvl3_txt.loadFromFile("assets\\red_ball.png");
soundmill.Red_Ballon2_lvl3_sp.setTexture(soundmill.Red2_lvl3_txt);
soundmill.Red_Ballon2_lvl3_sp.setPosition(295, 435);
soundmill.Red_Ballon2_lvl3_sp.setScale(0.13, 0.13);
soundmill.Red3_lvl3_txt.loadFromFile("assets\\red_ball.png");
soundmill.Red_Ballon3_lvl3_sp.setTexture(soundmill.Red3_lvl3_txt);
soundmill.Red_Ballon3_lvl3_sp.setPosition(250, 435);
soundmill.Red_Ballon3_lvl3_sp.setScale(0.13, 0.13);
soundmill.Bomb_lvl3_txt.loadFromFile("assets\\bomb.png");
soundmill.Bomb_lvl3_sp.setTexture(soundmill.Bomb_lvl3_txt);
soundmill.Bomb_lvl3_sp.setPosition(290, 580);
soundmill.Bomb_lvl3_sp.setScale(0.1, 0.1);
soundmill.tunnelfall.setBuffer(soundmill.tunnelfallbuff);
soundmill.tunnelwalk.setBuffer(soundmill.tunnelwalkbuff);
soundmill.button.setBuffer(soundmill.buttonbuff);
soundmill.box.setBuffer(soundmill.boxbuff);
soundmill.door.setBuffer(soundmill.doorbuff);
soundmill.backmill.setBuffer(soundmill.back3buff);
soundmill.tunnelfall.setVolume(50.f);
soundmill.tunnelwalk.setVolume(50.f);
soundmill.button.setVolume(50.f);
soundmill.box.setVolume(50.f);
soundmill.door.setVolume(50.f);
soundmill.backmill.setVolume(80.f);
}
void loadthegiantwalls(RenderWindow& window) {
soundgiantwalls.doorbuff.loadFromFile("assets\\level 4 the giant walls\\wood.wav");
soundgiantwalls.tirebuff.loadFromFile("assets\\level 4 the giant walls\\tire roll2.wav");
soundgiantwalls.buttonbuff.loadFromFile("assets\\level 4 the giant walls\\button on.wav");
soundgiantwalls.logbuff.loadFromFile("assets\\level 4 the giant walls\\wood slide.wav");
soundgiantwalls.logwalkbuff.loadFromFile("assets\\level 4 the giant walls\\wood walk.wav");
soundgiantwalls.logjumpbuff.loadFromFile("assets\\level 4 the giant walls\\wood.wav");
soundgiantwalls.tirefallbuff.loadFromFile("assets\\level 4 the giant walls\\tire fall.wav");
soundgiantwalls.back4buff.loadFromFile("assets\\level 4 the giant walls\\the giant walls back.ogg");
soundgiantwalls.Level4_background_txt.loadFromFile("assets\\level 4 the giant walls\\level 4 background.jpg");
soundgiantwalls.Level4_background_sp.setTexture(soundgiantwalls.Level4_background_txt);
Vector2u textureSize = soundgiantwalls.Level4_background_txt.getSize();
Vector2u windowSize = window.getSize();
float scaleX = (float)windowSize.x / textureSize.x;
float scaleY = (float)windowSize.y / textureSize.y;
soundgiantwalls.Level4_background_sp.setScale(scaleX, scaleY);
soundgiantwalls.Button_lv4_txt.loadFromFile("assets\\level 4 the giant walls\\Red button.png");
soundgiantwalls.Button_lv4_sp.setTexture(soundgiantwalls.Button_lv4_txt);
soundgiantwalls.Button_lv4_sp.setScale(0.04f, 0.04f);
soundgiantwalls.Button_lv4_sp.setPosition(630, 630);
soundgiantwalls.Button2_lv4_txt.loadFromFile("assets\\level 4 the giant walls\\Red button.png");
soundgiantwalls.Button2_lv4_sp.setTexture(soundgiantwalls.Button2_lv4_txt);
soundgiantwalls.Button2_lv4_sp.setScale(0.04f, 0.04f);
soundgiantwalls.Button2_lv4_sp.setPosition(200, 285);
soundgiantwalls.Button2_lv4_sp.setRotation(5);
soundgiantwalls.Arrow_sign_lvl4_txt.loadFromFile("assets\\level 4 the giant walls\\Arrow direction sign.png");
soundgiantwalls.Arrow_sign_lvl4_sp.setTexture(soundgiantwalls.Arrow_sign_lvl4_txt);
soundgiantwalls.Arrow_sign_lvl4_sp.setScale(0.098f, 0.098f);
soundgiantwalls.Arrow_sign_lvl4_sp.setPosition(1010, 390);
soundgiantwalls.Swichable_Barrier_lvl4_txt.loadFromFile("assets\\level 4 the giant walls\\Swichable Barrier.png");
soundgiantwalls.Swichable_Barrier_lvl4_sp.setTexture(soundgiantwalls.Swichable_Barrier_lvl4_txt);
soundgiantwalls.Swichable_Barrier_lvl4_sp.setScale(0.8f, 0.6f);
soundgiantwalls.Swichable_Barrier_lvl4_sp.setPosition(460, 40);
soundgiantwalls.Car_Tire_lvl4_txt.loadFromFile("assets\\level 4 the giant walls\\tire.png");
soundgiantwalls.Car_Tire_lvl4_sp.setTexture(soundgiantwalls.Car_Tire_lvl4_txt);
soundgiantwalls.Car_Tire_lvl4_sp.setOrigin(0, 0);
soundgiantwalls.Car_Tire_lvl4_sp.setScale(0.122f, 0.122f);
soundgiantwalls.Car_Tire_lvl4_sp.setPosition(500, 30);
soundgiantwalls.Stick_lvl4_txt.loadFromFile("assets\\level 4 the giant walls\\long stick.png");
soundgiantwalls.Stick_lvl4_sp.setTexture(soundgiantwalls.Stick_lvl4_txt);
soundgiantwalls.Stick_lvl4_sp.setScale(0.42f, 0.55f);
soundgiantwalls.Stick_lvl4_sp.setPosition(900, 580);
soundgiantwalls.Stick_lvl4_sp.setRotation(90);
soundgiantwalls.door.setBuffer(soundgiantwalls.doorbuff);
soundgiantwalls.tire.setBuffer(soundgiantwalls.tirebuff);
soundgiantwalls.button.setBuffer(soundgiantwalls.buttonbuff);
soundgiantwalls.tirefall.setBuffer(soundgiantwalls.tirefallbuff);
soundgiantwalls.backgiantwalls.setBuffer(soundgiantwalls.back4buff);
soundgiantwalls.log.setBuffer(soundgiantwalls.logbuff);
soundgiantwalls.logwalk.setBuffer(soundgiantwalls.logwalkbuff);
soundgiantwalls.logjump.setBuffer(soundgiantwalls.logjumpbuff);
soundgiantwalls.door.setVolume(50.f);
soundgiantwalls.tire.setVolume(50.f);
soundgiantwalls.button.setVolume(50.f);
soundgiantwalls.tirefall.setVolume(50.f);
soundgiantwalls.log.setVolume(50.f);
soundgiantwalls.logwalk.setVolume(50.f);
soundgiantwalls.logjump.setVolume(50.f);
soundgiantwalls.backgiantwalls.setVolume(80.f);
}
void loadbarn(RenderWindow& window) {
soundbarn.prisonbuff.loadFromFile("assets\\level 5 the barn\\prison.wav");
soundbarn.buttonbuff.loadFromFile("assets\\level 5 the barn\\button on.wav");
soundbarn.foxbuff.loadFromFile("assets\\level 5 the barn\\fox.wav");
soundbarn.barndoorbuff.loadFromFile("assets\\level 5 the barn\\barn door.wav");
soundbarn.woodjumpbuff.loadFromFile("assets\\level 5 the barn\\wood.wav");
soundbarn.dangerbuff.loadFromFile("assets\\level 5 the barn\\warning.wav");
soundbarn.back5buff.loadFromFile("assets\\level 5 the barn\\Barn sound.ogg");
soundbarn.background_level5_txt.loadFromFile("assets\\Level 5 final destination the barn\\level 5 background.png");
soundbarn.background_level5_sp.setTexture(soundbarn.background_level5_txt);
Vector2u textureSize = soundbarn.background_level5_txt.getSize();
Vector2u windowSize = window.getSize();
float scaleX = (float)windowSize.x / textureSize.x;
float scaleY = (float)windowSize.y / textureSize.y;
soundbarn.background_level5_sp.setScale(scaleX, scaleY);
soundbarn.sign_lvl5_txt.loadFromFile("assets\\Level 5 final destination the barn\\sign3f-removebg-preview.png");
soundbarn.sign_lvl5_sp.setTexture(soundbarn.sign_lvl5_txt);
soundbarn.sign_lvl5_sp.setScale(0.4f, 0.4f);
soundbarn.sign_lvl5_sp.setPosition(1045, 400);
soundbarn.shadowSign = soundbarn.sign_lvl5_sp;
soundbarn.shadowSign.setColor(Color(0, 0, 0, 100));
soundbarn.shadowSign.setOrigin(175, 350);
soundbarn.shadowSign.setPosition(soundbarn.sign_lvl5_sp.getPosition().x + 60, soundbarn.sign_lvl5_sp.getPosition().y + 145);
soundbarn.shadowSign.setScale(soundbarn.sign_lvl5_sp.getScale().x, -soundbarn.sign_lvl5_sp.getScale().y * 0.2f);
soundbarn.stick_lvl5_txt.loadFromFile("assets\\Level 5 final destination the barn\\stickgreen.png");
soundbarn.stick_lvl5_sp.setTexture(soundbarn.stick_lvl5_txt);
soundbarn.stick_lvl5_sp.setScale(0.85f, 0.85f);
soundbarn.stick_lvl5_sp.setPosition(210, 55);
soundbarn.shadowStick = soundbarn.stick_lvl5_sp;
soundbarn.shadowStick.setColor(Color(0, 0, 0, 100));
soundbarn.shadowStick.setScale(soundbarn.stick_lvl5_sp.getScale().x, soundbarn.stick_lvl5_sp.getScale().y * 0.15f);
soundbarn.shadowStick.setPosition(soundbarn.stick_lvl5_sp.getPosition().x, soundbarn.stick_lvl5_sp.getPosition().y + 510);
soundbarn.cage_lvl5_txt.loadFromFile("assets\\Level 5 final destination the barn\\cage2-removebg-preview.png");
soundbarn.cage_lvl5_sp.setTexture(soundbarn.cage_lvl5_txt);
soundbarn.cage_lvl5_sp.setScale(0.9f, 0.9f);
soundbarn.cage_lvl5_sp.setPosition(500, -35);
soundbarn.shadowCage = soundbarn.cage_lvl5_sp;
soundbarn.shadowCage.setColor(Color(0, 0, 0, 45));
soundbarn.shadowCage.setScale(soundbarn.cage_lvl5_sp.getScale().x, soundbarn.cage_lvl5_sp.getScale().y * 0.12f);
soundbarn.shadowCage.setPosition(soundbarn.cage_lvl5_sp.getPosition().x, soundbarn.cage_lvl5_sp.getPosition().y + 600);
soundbarn.stonenight_lvl5_txt.loadFromFile("assets\\Level 5 final destination the barn\\stonef.png");
soundbarn.stonenight_lvl5_sp.setTexture(soundbarn.stonenight_lvl5_txt);
soundbarn.stonenight_lvl5_sp.setScale(0.38f, 0.38f);
soundbarn.stonenight_lvl5_sp.setPosition(400, 470);
soundbarn.button_lvl5_txt.loadFromFile("assets\\Level 5 final destination the barn\\button.png");
soundbarn.button_lvl5_sp.setTexture(soundbarn.button_lvl5_txt);
soundbarn.button_lvl5_sp.setScale(0.07f, 0.07f);
soundbarn.button_lvl5_sp.setPosition(305, 157);
soundbarn.prison.setBuffer(soundbarn.prisonbuff);
soundbarn.button.setBuffer(soundbarn.buttonbuff);
soundbarn.fox.setBuffer(soundbarn.foxbuff);
soundbarn.barndoor.setBuffer(soundbarn.barndoorbuff);
soundbarn.danger.setBuffer(soundbarn.dangerbuff);
soundbarn.woodjump.setBuffer(soundbarn.woodjumpbuff);
soundbarn.backbarn.setBuffer(soundbarn.back5buff);
soundbarn.prison.setVolume(50.f);
soundbarn.button.setVolume(50.f);
soundbarn.fox.setVolume(80.f);
soundbarn.barndoor.setVolume(50.f);
soundbarn.danger.setVolume(70.f);
soundbarn.woodjump.setVolume(50.f);
soundbarn.backbarn.setVolume(80.f);
}
void DrawLevel1(RenderWindow& window) {
window.draw(soundforest.Level1_background_sp);
window.draw(soundforest.Hay_lvl1_sp);
window.draw(soundforest.Arrow_sign_lvl1_sp);
window.draw(soundforest.LongStick_lvl1_sp);
window.draw(soundforest.ShortStick_lvl1_sp);
window.draw(soundforest.Stone_wall_lvl1_sp);
window.draw(soundforest.Floating_pillar_lvl1_sp);
}
void DrawLevel2(RenderWindow& window) {
window.draw(soundontheroof.lvl2_background_sp);
window.draw(soundontheroof.home_lvl2_sp);
window.draw(soundontheroof.bridge_lvl2_sp);
window.draw(soundontheroof.wood_lvl2_sp);
window.draw(soundontheroof.sign_lvl2_sp);
window.draw(soundontheroof.box_lvl2_sp);
}
void Drawlevel3(RenderWindow& window)
{
window.clear();
window.draw(soundmill.Background_lvl3_sp);
window.draw(soundmill.Tunnel_lvl3_sp);
window.draw(soundmill.Blue_lvl3_sp);
window.draw(soundmill.Wooden_Column_lvl3_sp);
window.draw(soundmill.RockColumn_lvl3_sp);
window.draw(soundmill.Button_lvl3_sp);
window.draw(soundmill.Arrow_Sign_lvl3_sp);
window.draw(soundmill.Box_lvl3_sp);
window.draw(soundmill.Red_Ballon1_lvl3_sp);
window.draw(soundmill.Red_Ballon2_lvl3_sp);
window.draw(soundmill.Red_Ballon3_lvl3_sp);
window.draw(soundmill.Bomb_lvl3_sp);
}
void DrawLevel4(RenderWindow& window) {
window.draw(soundgiantwalls.Level4_background_sp);
window.draw(soundgiantwalls.Button_lv4_sp);
window.draw(soundgiantwalls.Button2_lv4_sp);
window.draw(soundgiantwalls.Arrow_sign_lvl4_sp);
window.draw(soundgiantwalls.Swichable_Barrier_lvl4_sp);
window.draw(soundgiantwalls.Car_Tire_lvl4_sp);
window.draw(soundgiantwalls.Stick_lvl4_sp);
}
void DrawLevel5(RenderWindow& window) {
window.draw(soundbarn.background_level5_sp);
window.draw(soundbarn.shadowSign);
window.draw(soundbarn.sign_lvl5_sp);
window.draw(soundbarn.shadowStick);
window.draw(soundbarn.stick_lvl5_sp);
window.draw(soundbarn.stonenight_lvl5_sp);
window.draw(soundbarn.button_lvl5_sp);
window.draw(soundbarn.shadowCage);
window.draw(soundbarn.cage_lvl5_sp);
}
void intro(RenderWindow& window) {
const int intro_totalscenes = 6;
Texture intro_txt[6];
intro_txt[0].loadFromFile("intro and outro\\intro.1.png");
intro_txt[1].loadFromFile("intro and outro\\intro.2.png");
intro_txt[2].loadFromFile("intro and outro\\intro.3.png");
intro_txt[3].loadFromFile("intro and outro\\intro.4.png");
intro_txt[4].loadFromFile("intro and outro\\intro.50.png");
intro_txt[5].loadFromFile("intro and outro\\intro.6.png");
Sprite intro_sp;
int currentscene = 0;
intro_sp.setTexture(intro_txt[0]);
Texture backbtn_txt, nextbtn_txt, skipbtn_txt;
backbtn_txt.loadFromFile("intro and outro\\arrowleft-removebg-preview.png");
nextbtn_txt.loadFromFile("intro and outro\\arrowright-removebg-preview.png");
skipbtn_txt.loadFromFile("intro and outro\\skipbutton-removebg-preview.png");
Sprite backbtn_sp, nextbtn_sp, skipbtn_sp;
backbtn_sp.setTexture(backbtn_txt);
nextbtn_sp.setTexture(nextbtn_txt);
skipbtn_sp.setTexture(skipbtn_txt);
backbtn_sp.setScale(0.6f, 0.6f);
nextbtn_sp.setScale(0.6f, 0.6f);
backbtn_sp.setPosition(10, 620);
nextbtn_sp.setPosition(1075, 620);
skipbtn_sp.setPosition(1120, 0);
bool introrun = true;
while (window.isOpen() && introrun) {
Event event;
intro_sp.setTexture(intro_txt[currentscene], true);
float scaleX = (float)window.getSize().x / intro_txt[currentscene].getSize().x;
float scaleY = (float)window.getSize().y / intro_txt[currentscene].getSize().y;
intro_sp.setScale(scaleX, scaleY);
while (window.pollEvent(event)) {
if (event.type == Event::Closed)window.close();
if (event.type == Event::MouseButtonPressed && event.mouseButton.button == Mouse::Left)
{
Vector2f mousePos = window.mapPixelToCoords(Mouse::getPosition(window));
if (nextbtn_sp.getGlobalBounds().contains(mousePos)) {
if (currentscene < intro_totalscenes - 1) {
currentscene++;
}
else {
introrun = false;
}
}
if (backbtn_sp.getGlobalBounds().contains(mousePos)) {
if (currentscene > 0) {
currentscene--;
}
}
if (skipbtn_sp.getGlobalBounds().contains(mousePos)) {
introrun = false;
}
}
}
window.clear();
window.draw(intro_sp);
if (currentscene > 0) {
window.draw(backbtn_sp);
}
window.draw(nextbtn_sp);
if (currentscene < intro_totalscenes - 1) {
window.draw(skipbtn_sp);
}
window.display();
}
}
void update(RenderWindow& window) {
while (window.pollEvent(event)) {
if (event.type == Event::Closed)
window.close();
switch (currentwindow) {
case 0://main
if (event.type == Event::KeyPressed) {
if (event.key.code == Keyboard::Up) {
menu.menutxt[selected].setFillColor(Color::White);
selected--;
if (selected < 0)
selected = MAIN - 1;
menu.menutxt[selected].setFillColor(Color::Black);
}
else if (event.key.code == Keyboard::Down) {
menu.menutxt[selected].setFillColor(Color::White);
selected++;
if (selected > MAIN - 1)
selected = 0;
menu.menutxt[selected].setFillColor(Color::Black);
}
if (event.key.code == Keyboard::Enter) {
if (selected == 0) {//play
currentwindow = 1;//map
selected = 0;
}
else if (selected == 1) {//settings
currentwindow = 3;//settings
selected = 0;
}
else if (selected == 2) {//credit
currentwindow = 4;//credit
}
else if (selected == 3)//exit
window.close();
}
}
break;
case 1://map
if (event.type == Event::KeyPressed) {
if (event.key.code == Keyboard::Left) {
menu.maptxt[selected].setFillColor(Color::White);
selected--;
if (selected < 0)
selected = MAP - 1;
menu.maptxt[selected].setFillColor(Color::Black);
}
else if (event.key.code == Keyboard::Right) {
menu.maptxt[selected].setFillColor(Color::White);
selected++;
if (selected > MAP - 1)
selected = 0;
menu.maptxt[selected].setFillColor(Color::Black);
}
if (event.key.code == Keyboard::Enter) {
if (selected == 0) {
//show intro
intro(window);
currentwindow = 2;
//logic forest
selectedlvl = 0;
selected = 0;
}
else if (selected == 1) {
currentwindow = 2;
//logic on the roof
selectedlvl = 1;
selected = 1;
}
else if (selected == 2) {
currentwindow = 2;
//logic the mill
selectedlvl = 2;
selected = 2;
}
else if (selected == 3) {
currentwindow = 2;
//logic the giant walls
selectedlvl = 3;
selected = 3;
}
else if (selected == 4) {
currentwindow = 2;
// logic the barn
selectedlvl = 4;
selected = 4;
}
else if (selected == 5) {
currentwindow = 0;
selected = 0;
menu.maptxt[MAP - 1].setFillColor(Color::White);
menu.maptxt[0].setFillColor(Color::Black);
}
}
}
break;
case 3://settings
if (event.type == Event::KeyPressed) {
if (event.key.code == Keyboard::Up) {
menu.settingstxt[selected].setFillColor(Color::White);
selected--;
if (selected < 0)
selected = SETTINGS - 1;
menu.settingstxt[selected].setFillColor(Color::Black);
}
else if (event.key.code == Keyboard::Down) {
menu.settingstxt[selected].setFillColor(Color::White);
selected++;
if (selected > SETTINGS - 1)
selected = 0;
menu.settingstxt[selected].setFillColor(Color::Black);
}
if (event.key.code == Keyboard::Enter) {
switch (selected) {//sounds handled here is the main&map only
case 0:
//set sounds to a higher level
break;
case 1:
//set sounds to a lower level
break;
case 2:
//mute sounds
break;
case 3://back
currentwindow = 0;//main
selected = 1;
menu.settingstxt[SETTINGS - 1].setFillColor(Color::White);
menu.settingstxt[0].setFillColor(Color::Black);
break;
}
}
}
break;
case 4://credit
selected = 7;
menu.creditxt[selected].setFillColor(Color::Black);
if (event.type == Event::KeyPressed) {
if (event.key.code == Keyboard::Enter) {
currentwindow = 0;//main
selected = 2;
}
}
break;
case 5://pause
if (event.type == Event::KeyPressed) {
if (event.key.code == Keyboard::Up) {
menu.pausetxt[selected].setFillColor(Color::White);
selected--;
if (selected < 0)
selected = PAUSE - 1;
menu.pausetxt[selected].setFillColor(Color::Black);
}
else if (event.key.code == Keyboard::Down) {
menu.pausetxt[selected].setFillColor(Color::White);
selected++;
if (selected > PAUSE - 1)
selected = 0;
menu.pausetxt[selected].setFillColor(Color::Black);
}
/*if (event.key.code == Keyboard::Left) {
menu.pausetxt[selectedop].setFillColor(Color::White);
selectedop--;
if (selectedop <= 1)
selectedop = PAUSE - 1;
menu.pausetxt[selectedop].setFillColor(Color::Black);
}
else if (event.key.code == Keyboard::Right) {
menu.pausetxt[selectedop].setFillColor(Color::White);
selectedop++;
if (selectedop > PAUSE - 1)
selectedop = 2;
menu.pausetxt[selectedop].setFillColor(Color::Black);
}
*/
if (event.key.code == Keyboard::Enter) {
switch (selected) {// sound on mute map continue
case 0://sound on
if (selectedlvl == 0) {
//play sounds
soundforest.backforest.play();
}
else if (selectedlvl == 1) {
//play sounds
}
else if (selectedlvl == 2) {
//play sounds
}
else if (selectedlvl == 3) {
//play sounds
}
else if (selectedlvl == 4) {
//play sounds
}
break;
case 1://mute
if (selectedlvl == 0) {
//pause sounds
soundforest.backforest.pause();
}
else if (selectedlvl == 1) {
//pause sounds
}
else if (selectedlvl == 2) {
//pause sounds
}
else if (selectedlvl == 3) {
//pause sounds
}
else if (selectedlvl == 4) {
//pause sounds
}
break;
case 2://map
selected = 0;
currentwindow = 1;
menu.pausetxt[PAUSE - 2].setFillColor(Color::White);
menu.pausetxt[0].setFillColor(Color::Black);
break;
case 3://continue
switch (selectedlvl) {
case 0:
selected = 0;
currentwindow = 2;
break;
case 1:
selected = 1;
currentwindow = 2;
break;
case 2:
selected = 2;
currentwindow = 2;
break;
case 3:
selected = 3;
currentwindow = 2;
break;
case 4:
selected = 4;
currentwindow = 2;
break;
//handel continue
break;
}
}
}
}
break;
case 6://win
if (event.type == Event::KeyPressed) {
if (event.key.code == Keyboard::Up) {
menu.wintxt[selectedop].setFillColor(Color::White);
selectedop--;
if (selectedop < 2)
selectedop = WIN - 1;
menu.wintxt[selectedop].setFillColor(Color::Black);
}
else if (event.key.code == Keyboard::Down) {
menu.wintxt[selectedop].setFillColor(Color::White);
selectedop++;
if (selectedop > WIN - 1)
selectedop = 2;
menu.wintxt[selectedop].setFillColor(Color::Black);
}
if (event.key.code == Keyboard::Enter) {
switch (selected) {//retry map next
case 2:
currentwindow = 2;
//restart the level
break;
case 3://map
currentwindow = 1;
break;
case 4:
currentwindow = 2;
//handel logic of choosing which level to draw next
//if selected is 2 then next 3
break;
}
}
}
break;
case 7://lose
if (event.type == Event::KeyPressed) {
if (event.key.code == Keyboard::Up) {
menu.losetxt[selected].setFillColor(Color::White);
selected--;
if (selected <= 0)
selected = LOSE - 1;
menu.losetxt[selected].setFillColor(Color::Black);
}
else if (event.key.code == Keyboard::Down) {
menu.losetxt[selected].setFillColor(Color::White);
selected++;
if (selected > LOSE - 1)
selected = 1;
menu.losetxt[selected].setFillColor(Color::Black);
}
if (event.key.code == Keyboard::Enter) {
switch (selected) {//retry
case 1:
currentwindow = 2;
//handel restarting the level
break;
case 2://map
currentwindow = 1;
break;
}
}
}
break;
case 8:
if (event.type == Event::KeyPressed) {
if (event.key.code == Keyboard::Up) {
menu.timeouttxt[selected].setFillColor(Color::White);
selected--;
if (selected <= 0)
selected = TIMEOUT - 1;
menu.timeouttxt[selected].setFillColor(Color::Black);
}
else if (event.key.code == Keyboard::Down) {
menu.timeouttxt[selected].setFillColor(Color::White);
selected++;
if (selected > TIMEOUT - 1)
selected = 1;
menu.timeouttxt[selected].setFillColor(Color::Black);
}
if (event.key.code == Keyboard::Enter) {
switch (selected) {
case 1://retry
currentwindow = 2;
//handel restarting the level
break;
case 2://map
currentwindow = 1;
break;
}
}
}
break;
}
}
}
void draw(RenderWindow& window) {
window.clear();
switch (currentwindow) {
case 0://main
window.draw(menu.mainbackground);
for (int i = 0; i < MAIN; i++) {
window.draw(menu.menutxt[i]);
}
window.display();
break;
case 1://map
menu.back.setPosition(545, 630);
menu.back.setScale(0.5, 0.5);
window.draw(menu.mapbackground);
window.draw(menu.back);
for (int i = 0; i < MAP; i++) {
window.draw(menu.maptxt[i]);
}
window.display();
break;
case 2://levels
if (selected == 0) {//draw forest here
DrawLevel1(window);
}
else if (selected == 1) {//draw on the roof here
DrawLevel2(window);
}
else if (selected == 2) {//draw the mill here
Drawlevel3(window);
}
else if (selected == 3) {//draw the giant walls here
DrawLevel4(window);
}
else if (selected == 4) {//draw the barn here
DrawLevel5(window);
}
window.display();
break;
case 3://settings
menu.back.setPosition(470, 550);
menu.back.setScale(1, 1);
window.draw(menu.mainbackground);
window.draw(menu.menusbackground);
window.draw(menu.back);
for (int i = 0; i < SETTINGS; i++) {
window.draw(menu.settingstxt[i]);
}
window.display();
break;
case 4://credit
menu.back.setPosition(470, 550);
menu.back.setScale(1, 1);
window.draw(menu.mainbackground);
window.draw(menu.menusbackground);
window.draw(menu.back);
for (int i = 0; i < CREDIT; i++) {
window.draw(menu.creditxt[i]);
}
window.display();
break;
case 5://pause
DrawLevel1(window);
window.draw(menu.menusbackground);
menu.back.setPosition(530, 240);
menu.back2.setPosition(530, 305);
menu.back3.setPosition(530, 370);
menu.back4.setPosition(530, 435);
menu.back.setScale(0.65, 0.65);
menu.back2.setScale(0.65, 0.65);
menu.back3.setScale(0.65, 0.65);
menu.back4.setScale(0.65, 0.65);
for (int i = 0; i < PAUSE; i++) {
window.draw(menu.pausetxt[i]);
}
if (currentwindow == 2) {
switch (selectedlvl) {
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
}
}
window.display();
break;
case 6:
window.draw(menu.menusbackground);
for (int i = 0; i < WIN; i++) {
window.draw(menu.wintxt[i]);
}
window.display();
break;
case 7:
window.draw(menu.menusbackground);
for (int i = 0; i < LOSE; i++) {
window.draw(menu.losetxt[i]);
}
window.display();
break;
case 8:
window.draw(menu.menusbackground);
for (int i = 0; i < TIMEOUT; i++) {
window.draw(menu.timeouttxt[i]);
}
window.display();
break;
}
}
int main() {
RenderWindow window = { VideoMode(1280,720), "Back to The Barn" };
loadmenus(window);
loadgeneral(window);
loadforest(window);
loadontheroof(window);
loadmill(window);
loadthegiantwalls(window);
loadbarn(window);
while (window.isOpen()) {
update(window);
draw(window);
}
return 0;
}
Editor is loading...
Leave a Comment