Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
84 kB
3
Indexable
#include <SFML/Audio.hpp>
#include <iostream>
#include <SFML/Graphics.hpp>
#include <time.h>
#include "Chicken.h"
#include "Player.h"
#include "Bullets.h"
#include "Eggs.h"
#include "Pickups.h"
#include "Menu.h"
#include "Rocks.h"
#include <vector>
#include <fstream>
#include <string>
using namespace std;
#define number 5
bool gameover = false;
int cnt = 0;
bool firstmenu = true;
bool shielded = true;
bool movesleft = true;
bool playing = true;
bool muted = false;
bool inOptions = false;
bool insound = false;
bool incontrols = false;
bool keyboardf = true;
bool mousef = false;
bool inlevel[12] = { false };
bool inmain = true;
bool pos1 = false, pos2 = false, pos3 = true;
bool gamejustopened = true;
bool scoretaken = false;
sf::Clock habaltimer;
sf::Clock transittimer;
Pickups BO[40];
int n = 0;
vector <Eggs> E;
Eggs egg;
vector<Bullets> B;
Bullets bullet;
Rocks R[1000];

void rocksOnScreen(Rocks R[]) {
	for (int i = 0;i < 77;i++)
		if (R[i].getShape().getPosition().x > 700 || R[i].getShape().getPosition().y > 780)
			R[i].Dead = true;
}

bool rocksOver(Rocks R[]) {
	for (int i = 0;i < 77;i++)
		if (!R[i].Dead)
			return false;
	return true;
}

int countAliveChickens(Chicken round1[][5]) {
	int cnt = 0;
	for (int i = 0;i < number;i++)
		for (int j = 0;j < number;j++)
			if (!round1[i][j].Dead)
				cnt++;
	return cnt;
}

void chickenDescendingOnScreen(Chicken a[], Chicken b[], Chicken c[]) {

	for (int i = 0;i < 20;i++) {
		if (!a[i].Dead)
			if (a[i].getCHShape().getPosition().y > 770)
				a[i].Dead = true;
		if (i < 9) {
			if (!b[i].Dead)
				if (b[i].getCHShape().getPosition().y > 770)
					b[i].Dead = true;
		}
		if (i < 5) {
			if (!c[i].Dead)
				if (c[i].getCHShape().getPosition().y > 770)
					c[i].Dead = true;
		}
	}
}

bool chickensDescendingOver(Chicken a[], Chicken b[], Chicken c[]) {
	for (int i = 0;i < 20;i++) {
		if (!a[i].Dead)
			return false;
		if (i < 9)
			if (!b[i].Dead)
				return false;
		if (i < 5)
			if (!c[i].Dead)
				return false;
	}
	return true;
}

void handleChickenDescendingWave(Chicken a[], Chicken b[], Chicken c[], Player &player, Clock &descendingtimer,int level);
void pickupsChickenDescending(Chicken a[], Chicken b[], Chicken c[], Player & player);
void afterhittingdescending(Chicken a[], Chicken b[], Chicken c[], Player & player,int level);
void moveAround(Chicken & a, Player & player);
void hittingChickenDescending(Chicken a[], Chicken b[], Chicken c[], Player &player);
void dealwithChickens(Chicken a[], Chicken b[], Chicken c[], int i, int ib, int ic,  int level);
bool descendingChickensAlive(Chicken a[], int s, int e);
void descendingChickensMoving(Chicken &a, int level);
void descendingChickensInitial(Chicken a[], Chicken b[], Chicken c[], int size, int level);
void movingRocks(Rocks R[], Clock & rocktimer, int &cnt);
void startWave2(int& cnt, Clock& rocktimer, Clock& wave2);
void rockWave(Rocks R[], int s, int e);
void beastMovement(Chicken & beast, sf::Clock & timer3);
void handlechicken(Player& player, Chicken round1[][number], sf::Sound& laid, int level);
void handleplayer(Player& player, sf::RenderWindow& App, sf::Clock& shieldtimer, sf::Sound& eat, sf::Sprite& PB);
void shooting(Player& player, sf::Clock& timer, sf::Sound& shoot);
void movingship(Player& player, sf::RenderWindow& App);
void handlemain(sf::RenderWindow& App, Player& player, sf::Event& event);
void handleround0(int level, sf::RenderWindow& App, Player& player);
void handleround1(int level, sf::RenderWindow& App, Player& player);
void handleround2(int level, sf::RenderWindow& App, Player& player);
void handleround3(int level, sf::RenderWindow& App, Player& player);
bool round0done(Chicken round1[][number]);
void handlecontrols(Menu& menu, sf::RenderWindow& App, sf::Event& event);
void handlesound(Menu& menu, sf::RenderWindow& App, sf::Event& event);
void handleoptions(Menu& options, sf::RenderWindow& App, sf::Event& event);
void handlemenu(Menu& menu, sf::RenderWindow& App, sf::Event& event, Sound &menumusic);
void loadplayer(sf::RenderWindow& App, vector<sf::Text>& players);
string fromKtoS(const sf::Keyboard::Key& k);
void addplayer(string name);
void deleteplayer(int z, int size);
void chooseplayer(Player& player, int pos);
void updatesheet(Player& player);
void addScore2(string name, int score);
void readscores(sf::RenderWindow& App, vector<sf::Text>& players);
void handleStore(Player&player);

int main()
{
	sf::Font font;
	font.loadFromFile("futureforcescondital.ttf");
	sf::Text loading;
	loading.setFont(font);
	loading.setFillColor(sf::Color::White);
	loading.setPosition(230, 300);
	loading.setCharacterSize(80);
	SoundBuffer mm;
	Sound menumusic;
	mm.loadFromFile("Ci1maintheme.oga");
	menumusic.setBuffer(mm);

	Clock load;
	load.restart();
	SoundBuffer logo;
	Sound start;
	logo.loadFromFile("Ci1logo.oga");
	start.setBuffer(logo);



	sf::RenderWindow App(sf::VideoMode(200 + number * 120, 300 + 100 * number, 32), "CHICKEN INVADERS");
	Player player("koko");
	inmain = true;
	while (App.isOpen())
	{	start.play();
		if (load.getElapsedTime().asSeconds() < 4) {
			
			loading.setString("Loading.");
			App.clear();
			App.draw(loading);
		
			App.display();
			App.clear();
			loading.setString("Loading...");
			App.draw(loading);
				App.display();
		}
		sf::Event event;
		while (App.pollEvent(event))
		{
			if (event.type == sf::Event::Closed)
				App.close();
		}
		while (App.isOpen() && inmain && load.getElapsedTime().asSeconds() > 3)
		{
			menumusic.play();
		handlemain(App, player, event); 
		for (int i = 0; i < 12; i++)
			inlevel[i] = false; 
		inlevel[player.getLevel()] = true; 
		}
		menumusic.stop();
		for (int i = 0; i < 12; i++)
		{	
		
			if (inlevel[i] && i % 4 == 0 && !player.Dead &&!inmain) 
				handleround0(i / 4 + 1, App, player);
		
			if (inlevel[i] && i % 4 == 1 && !player.Dead && !inmain)
				handleround1(i / 4 + 1, App, player);
			
		
			if (inlevel[i] && i % 4 == 2 && !player.Dead && !inmain)
				handleround2(i / 4 + 1, App, player);
			
		
			if (inlevel[i] && i % 4 == 3 && !player.Dead && !inmain)
				handleround3(i / 4 + 1, App, player);
			
		}
	}
	//mabrook you win the game heeeh closure function
	App.close();


	return 0;
}

void handleround0(int level, sf::RenderWindow& App, Player& player)
{
	Menu menu(App.getSize().x, App.getSize().y);
	srand(unsigned(time(NULL)));
	bool started = false;
	//intialize some sounds
	sf::SoundBuffer sh;
	sh.loadFromFile("Ionblaster.oga");
	sf::Sound shoot;
	shoot.setBuffer(sh);
	shoot.setVolume(50);
	sf::SoundBuffer l;
	sf::Sound laid;
	l.loadFromFile("Ci1egglay.oga");
	laid.setBuffer(l);
	sf::SoundBuffer e;
	sf::Sound eat;
	e.loadFromFile("Ci1foodeat.oga");
	eat.setBuffer(e);
	SoundBuffer mm;
	Sound menumusic;
	mm.loadFromFile("Ci1maintheme.oga");
	menumusic.setBuffer(mm);

	//initialize player pos
	player.setpos(350, 680);
	//some timers
	sf::Clock timer;
	timer.restart();
	shielded = true;
	sf::Clock shieldtimer;
	shieldtimer.restart();
	sf::Clock starttimer;
	starttimer.restart();
	//initialize background
	sf::Texture bg;
	sf::Sprite background;
	if (level == 3) {
		bg.loadFromFile("coral.jpg");
		background.setTexture(bg);
	}
	else if(level==1){
		bg.loadFromFile("space2.png");
		background.setTexture(bg);
		background.setScale(1.4, 1.4);
	}
	else if (level == 2) {
		bg.loadFromFile("sky.jpg");
		background.setTexture(bg);
		background.setScale(1.35, 1.35);
	}
	//shield
	sf::CircleShape shield(80);
	shield.setFillColor(sf::Color::Transparent);
	shield.setOutlineThickness(10);
	//hearts on top texture/sprite
	sf::Texture LI;
	LI.loadFromFile("heart.png");
	sf::Sprite Life;
	Life.setTexture(LI);
	Life.setPosition(5, 15);
	//pause button
	sf::Texture P;
	P.loadFromFile("pausebutton.png");
	sf::Sprite PB;
	PB.setTexture(P);
	PB.setPosition(App.getSize().x - 60, 0);

	//arial font
	sf::Font font;
	font.loadFromFile("futureforcescondital.ttf");
	sf::Text lives;
	lives.setFont(font);
	lives.setFillColor(sf::Color::White);
	lives.setPosition(55, -15);
	lives.setCharacterSize(70);
	//intialize score
	sf::Text score;
	score.setFont(font);
	score.setFillColor(sf::Color::White);
	score.setPosition(App.getSize().x / 2 - 100, 0);
	score.setCharacterSize(50);
	//conclusion
	sf::Text conclusion;
	conclusion.setFont(font);
	conclusion.setFillColor(sf::Color::White);
	conclusion.setPosition(150, 350);
	conclusion.setCharacterSize(80);
	//intialize intro text
	sf::Text intro;
	intro.setFont(font);
	intro.setFillColor(sf::Color::White);
	intro.setPosition(130, 250);
	intro.setCharacterSize(80);
	intro.setString("Level " + std::to_string(level) + " wave 1");
	//initialize chicken
	Chicken round1[number][number];
	for (int i = 0; i < number; i++){
		for (int j = 0; j < number; j++)
		{
			if (level == 3) {
				round1[i][0].setLevel(level + 1, true);
				round1[i][j].setpos(90 + 120 * i, 45 + 100 * j);
				if (j > 0)
					round1[i][j].setLevel(level, true);
				if (i == 1 && j == 3)
					round1[i][j].hasKey = true;
			}
			else {
				round1[i][0].setLevel(level + 1, false);
				round1[i][j].setpos(90 + 120 * i, 45 + 100 * j);
				if (j > 0)
					round1[i][j].setLevel(level, false);
			}

		}
	}

	n = 0;
	// Start game loop-----------------------------------------------------------------------------
	while (App.isOpen() && !inmain&&inlevel[(level - 1) * 4])
	{
		shield.setOrigin(-player.getShip().getPosition() + sf::Vector2f(30, 30));
		shield.setOutlineColor(sf::Color(100 * std::sin(shieldtimer.getElapsedTime().asSeconds()), 100 * std::cos(shieldtimer.getElapsedTime().asSeconds()), 100 + 100 * std::sin(shieldtimer.getElapsedTime().asSeconds())));
		shield.setRadius(80 + 10 * std::sin(shieldtimer.getElapsedTime().asSeconds()));
		lives.setString(std::to_string(player.getLifes()));
		score.setString("Score: " + std::to_string(player.getScore()));
		if (shieldtimer.getElapsedTime().asSeconds() > 10)shielded = false;
		if (!player.Dead && player.hitbyegg && player.deathtimer.getElapsedTime().asSeconds() >= 2){ player.hitbyegg = false; player.setpos(350, 680); shielded = true; shieldtimer.restart(); }
		if (player.Dead&&!scoretaken){  conclusion.setPosition(150, 350); conclusion.setString("YOU LOSE :P"); }
		if (starttimer.getElapsedTime().asSeconds() >= 3){ started = true; }

		if (!inlevel[(level - 1) * 4 + 1] && round0done(round1))
		{
			conclusion.setPosition(150, 250);
			conclusion.setString("YOU WIN :D\nNOW ROCKS");
			player.setLevel(player.getLevel() + 1);
			transittimer.restart(); inlevel[(level - 1) * 4 + 1] = true;
			if (!player.Dead) {
				updatesheet(player);
			}
		}
		if (player.Dead) {

			addScore2(player.getName(), player.getScore());
			player.setLevel(0);
			player.setLifes(3);
			player.setShots(1);
			player.setScore(0);
			inmain = true;
		}
		
		
		if (inlevel[(level - 1) * 4 + 1] && transittimer.getElapsedTime().asSeconds() >= 3){ inlevel[(level - 1) * 4] = false; }

		if (player.Dead) {
			//inmain = true;
		}
		n = n % 40;
		sf::Event event;
		if (!playing){
			handlemenu(menu, App, event,menumusic); 
		if (firstmenu)
			starttimer.restart(); 
		}
		else
		{
			while (App.pollEvent(event))
			if (event.type == sf::Event::Closed)App.close();
			movingship(player, App);
			shooting(player, timer, shoot);
			if (started)
			{
				handleplayer(player, App, shieldtimer, eat, PB);
				handlechicken(player, round1, laid,level);
				for (int i = 0;i<number;i++)
					for (int j = 0;j<number;j++)
						if (!shielded && !player.Dead && !player.hitbyegg && !round1[i][j].Dead && player.getShip().getGlobalBounds().intersects(round1[i][j].getCHShape().getGlobalBounds()))
							player.minusHealth();
			}
		}
		// Clear the screen (fill it with black color)
		App.clear();

		if (!playing)
		{ menu.draw(App); }

		else{
			App.draw(background);
			if (!started)
			{ App.draw(intro); }

			else{
				App.draw(Life);
				App.draw(lives);
				App.draw(score);
				App.draw(PB);
				for (int i = 0; i < number; i++)
				{
					for (int j = 0; j < number; j++)
					{
						if (round1[i][j].Dead == false &&!player.Dead)
							App.draw(round1[i][j].getCHShape());
					}
				}
				if (E.size()>0 && !player.Dead){
					for (int i = 0; i < E.size(); i++)
					{
						if (E[i].getBroken() == false){
							E[i].setpos(E[i].getShape().getPosition().x, E[i].getShape().getPosition().y + (0.3*E[i].getSpeedfactor()));
							App.draw(E[i].getShape());
						}

						if (E[i].getShape().getPosition().y >= App.getSize().y - 60 && E[i].getBroken() == false){
							E[i].setBroken(true);
						}
						if (E[i].getTimer()<0.5)App.draw(E[i].getShape());
						if (E[i].getTimer()>0.6 && E[i].getBroken()){ E.erase(E.begin() + i); }
					}
				}
				if (n > 0&&!player.Dead)
					for (int i = 0; i < n; i++)
				{
					BO[i].setpos(BO[i].getShape().getPosition().x, BO[i].getShape().getPosition().y + 0.25);
					App.draw(BO[i].getShape());
				}
			}
			if (!player.Dead && !player.hitbyegg)
				App.draw(player.getShip());
			if (player.Dead )
				//|| round0done(round1))
				App.draw(conclusion);

			if (shielded&&!player.Dead)
				App.draw(shield);
			if (B.size()>0&&!player.Dead) 
				for (int i = 0; i < B.size(); i++)App.draw(B[i].getArrow());
		}

		App.display();
	}

	return;

}
void handlecontrols(Menu& menu, sf::RenderWindow& App, sf::Event& event){
	while (!playing&&App.pollEvent(event))
	{
		switch (event.type)
		{
		case sf::Event::Closed:
			App.close();
			break;
		case sf::Event::KeyReleased:
			switch (event.key.code)
			{
			case sf::Keyboard::Up:
				menu.MoveUp();
				break;

			case sf::Keyboard::Down:
				menu.MoveDown();
				break;

			case sf::Keyboard::Return:
				switch (menu.GetPressedItem())
				{
				case 0:
					mousef = true;
					keyboardf = false;
					break;
				case 1:
					keyboardf = true;
					mousef = false;
					break;
				case 2:
					incontrols = false;
					break;
				}

				break;
			}

			break;

		}
	}
}
void handlesound(Menu& menu, sf::RenderWindow& App, sf::Event& event){
	while (!playing&&App.pollEvent(event))
	{
		switch (event.type)
		{
		case sf::Event::Closed:
			App.close();
			break;
		case sf::Event::KeyReleased:
			switch (event.key.code)
			{
			case sf::Keyboard::Up:
				menu.MoveUp();
				break;

			case sf::Keyboard::Down:
				menu.MoveDown();
				break;

			case sf::Keyboard::Return:
				switch (menu.GetPressedItem())
				{
				case 0:
					muted = true;
					break;
				case 1:
					//soundfactor = 0.5; //between 0&1
					break;
				case 2:
					insound = false;
					break;
				}

				break;
			}

			break;

		}
	}
}
void handleoptions(Menu& options, sf::RenderWindow& App, sf::Event& event){
	Menu sound(App.getSize().x, App.getSize().y, "mute", "50%", "Back");
	Menu controls(App.getSize().x, App.getSize().y, "mouse", "keyboard", "Back");

	while (!playing&&App.pollEvent(event))
	{
		switch (event.type)
		{
		case sf::Event::Closed:
			App.close();
			break;
		case sf::Event::KeyReleased:
			switch (event.key.code)
			{
			case sf::Keyboard::Up:
				options.MoveUp();
				break;

			case sf::Keyboard::Down:
				options.MoveDown();
				break;


			case sf::Keyboard::Return:
				switch (options.GetPressedItem())
				{
				case 0:
					insound = true;
					while (App.isOpen() && insound)
					{
						handlesound(sound, App, event);
						App.clear();
						sound.draw(App);
						App.display();
					}
					break;
				case 1:
					incontrols = true;
					while (App.isOpen() && incontrols)
					{
						handlecontrols(controls, App, event);
						App.clear();
						controls.draw(App);
						App.display();
					}
					break;
				case 2:
					inOptions = false;
					break;
				}

				break;
			}

			break;

		}
	}
}
void handlemenu(Menu& menu, sf::RenderWindow& App, sf::Event& event, Sound &menumusic){
	Menu options(App.getSize().x, App.getSize().y, "Sound", "Controls", "Back");
	menumusic.play();
	while (!playing&&App.pollEvent(event))
	{
		switch (event.type)
		{
		case sf::Event::Closed:
			App.close();
			break;
		case sf::Event::KeyReleased:
			switch (event.key.code)
			{
			case sf::Keyboard::Up:
				menu.MoveUp();
				break;

			case sf::Keyboard::Down:
				menu.MoveDown();
				break;

			case sf::Keyboard::Return:
				switch (menu.GetPressedItem())
				{
				case 0:
					playing = true;
					firstmenu = false;
					break;
				case 1:
					inOptions = true;
					while (App.isOpen() && inOptions)
					{
						handleoptions(options, App, event);
						App.clear();
						options.draw(App);
						App.display();
					}
					break;
				case 2:
					sf::Font font;
					font.loadFromFile("arial.ttf");
					bool agreed = false;
					sf::Text yes;
					yes.setFont(font);
					yes.setCharacterSize(25);
					yes.setString("Yes");
					sf::Text no;
					no.setFont(font);
					no.setCharacterSize(25);
					no.setString("No");
					sf::Text confirm;
					confirm.setFont(font);
					confirm.setCharacterSize(25);
					confirm.setString("Are you sure you want to continue?");
					confirm.setPosition(0, 0);
					sf::RenderWindow conmsg(sf::VideoMode(confirm.getCharacterSize()*confirm.getString().getSize() / 2, confirm.getCharacterSize() * 4, 32), "Delete confirmation");
					yes.setPosition(conmsg.getSize().x / 2 + 30, conmsg.getSize().y - 50);
					no.setPosition(conmsg.getSize().x / 2 - 30, conmsg.getSize().y - 50);
					while (conmsg.isOpen())
					{
						sf::Event event2;
						while (conmsg.pollEvent(event2))
						{
							if ((event2.type == sf::Event::Closed) || ((sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))))
								conmsg.close();
						}
						yes.setFillColor(sf::Color::White);
						no.setFillColor(sf::Color::White);
						if (yes.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(conmsg))))
						{
							yes.setFillColor(sf::Color::Red);
						}
						if (no.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(conmsg))))
						{
							no.setFillColor(sf::Color::Red);
						}
						if (sf::Mouse::isButtonPressed(sf::Mouse::Left)){
							if (yes.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(conmsg))))
							{
								agreed = true;
								conmsg.close();
							}
							if (no.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(conmsg))))
							{
								agreed = false;
								conmsg.close();
							}
						}
						conmsg.clear(sf::Color(169, 169, 169));
						conmsg.draw(confirm);
						conmsg.draw(yes);
						conmsg.draw(no);
						conmsg.display();
					}
					if (agreed)
					{
						inmain = true;
					}break;
				}

				break;
			}

			break;

		}
	}
}
bool round0done(Chicken round1[][number]){
	for (int i = 0; i < number; i++)
	for (int j = 0; j < number; j++){
		if (round1[i][j].Dead == false)return false;
	}
	return true;
}
void handleround1(int level, sf::RenderWindow& App, Player& player){
	Menu menu(App.getSize().x, App.getSize().y);
	srand(unsigned(time(NULL)));
	bool started = false;
	//intialize some sounds
	sf::SoundBuffer sh;
	sh.loadFromFile("Ionblaster.oga");
	sf::Sound shoot;
	shoot.setBuffer(sh);
	shoot.setVolume(50);
	//add your sounds here
	/*sf::SoundBuffer l;
	sf::Sound laid;
	l.loadFromFile("Ci1egglay.oga");
	laid.setBuffer(l);
	*/sf::SoundBuffer e;
	sf::Sound eat;
	e.loadFromFile("Ci1foodeat.oga");
	eat.setBuffer(e);
	SoundBuffer mm;
	Sound menumusic;
	mm.loadFromFile("Ci1maintheme.oga");
	menumusic.setBuffer(mm);
	//initialize player pos
	player.setpos(350, 680);
	//some timers
	sf::Clock timer;
	timer.restart();
	shielded = true;
	sf::Clock shieldtimer;
	shieldtimer.restart();
	sf::Clock starttimer;
	starttimer.restart();
	//initialize background
	sf::Texture bg;
	sf::Sprite background;
	if (level == 3) {
		bg.loadFromFile("coral.jpg");
		background.setTexture(bg);
	}
	else if(level==1){
		bg.loadFromFile("space2.png");
		background.setTexture(bg);
		background.setScale(1.4, 1.4);
	}
	else if (level == 2) {
		bg.loadFromFile("sky.jpg");
		background.setTexture(bg);
		background.setScale(1.35, 1.35);
	}
	//shield
	sf::CircleShape shield(80);
	shield.setFillColor(sf::Color::Transparent);
	shield.setOutlineThickness(10);
	//hearts on top texture/sprite
	sf::Texture LI;
	LI.loadFromFile("heart.png");
	sf::Sprite Life;
	Life.setTexture(LI);
	Life.setPosition(5, 15);
	//pause button
	sf::Texture P;
	P.loadFromFile("pausebutton.png");
	sf::Sprite PB;
	PB.setTexture(P);
	PB.setPosition(App.getSize().x - 60, 0);

	//arial font
	sf::Font font;
	font.loadFromFile("futureforcescondital.ttf");
	sf::Text lives;
	lives.setFont(font);
	lives.setFillColor(sf::Color::White);
	lives.setPosition(55, -15);
	lives.setCharacterSize(70);
	//intialize score
	sf::Text score;
	score.setFont(font);
	score.setFillColor(sf::Color::White);
	score.setPosition(App.getSize().x / 2 - 100, 0);
	score.setCharacterSize(50);
	//conclusion
	sf::Text conclusion;
	conclusion.setFont(font);
	conclusion.setFillColor(sf::Color::White);
	conclusion.setPosition(150, 350);
	conclusion.setCharacterSize(80);
	//intialize intro text
	sf::Text intro;
	intro.setFont(font);
	intro.setFillColor(sf::Color::White);
	intro.setPosition(130, 250);
	intro.setCharacterSize(80);
	intro.setString("Level " + std::to_string(level) + " wave 2");
	//initialize rocks
	cnt = 0;
	R[0].setpos(-100, -100);
	Clock rocktimer;
	Clock wave2;
	startWave2(cnt, rocktimer, wave2);
	if (level == 3)
		for (int i = 0;i < 500;i++)
			R[i].setTheme();

	wave2.restart();

	n = 0;
	// Start game loop-----------------------------------------------------------------------------
	while (App.isOpen() && !inmain&&inlevel[(level - 1) * 4 + 1])
	{
		shield.setOrigin(-player.getShip().getPosition() + sf::Vector2f(30, 30));
		shield.setOutlineColor(sf::Color(100 * std::sin(shieldtimer.getElapsedTime().asSeconds()), 100 * std::cos(shieldtimer.getElapsedTime().asSeconds()), 100 + 100 * std::sin(shieldtimer.getElapsedTime().asSeconds())));
		shield.setRadius(80 + 10 * std::sin(shieldtimer.getElapsedTime().asSeconds()));
		lives.setString(std::to_string(player.getLifes()));
		score.setString("Score: " + std::to_string(player.getScore()));
		if (shieldtimer.getElapsedTime().asSeconds() > 5)shielded = false;
		if (!player.Dead && player.hitbyegg && player.deathtimer.getElapsedTime().asSeconds() >= 2)
		{ player.hitbyegg = false; 
		player.setpos(350, 680); 
		shielded = true; 
		shieldtimer.restart(); }
		if (player.Dead) { conclusion.setPosition(150, 350); conclusion.setString("YOU LOSE :P"); }
		if (starttimer.getElapsedTime().asSeconds() >= 3)
		{ started = true; }

		if (!inlevel[(level - 1) * 4 + 2] && wave2.getElapsedTime().asSeconds() > 15) {
			conclusion.setPosition(100, 250);
			//	conclusion.setString("YOU WIN :D\nNOW Decsending chicken"); 
			player.setLevel(player.getLevel() + 1);
			transittimer.restart();
				inlevel[(level - 1) * 4 + 2] = true;

			if (!player.Dead) {
			
				updatesheet(player);
			}
		
		}
			if (player.Dead) {

				addScore2(player.getName(), player.getScore());
				player.setLevel(0);
				player.setLifes(3);
				player.setShots(1);
				player.setScore(0);
				inmain=true;
			}
		
		if (inlevel[(level - 1) * 4 + 2] && transittimer.getElapsedTime().asSeconds() >= 2)
		{ inlevel[(level - 1) * 4 + 1] = false; }
		if (player.Dead) {
			inmain = true;
		}

		n = n % 40;
		sf::Event event;
		if (!playing)
		{ handlemenu(menu, App, event,menumusic); 
		if (firstmenu)
			starttimer.restart(); }
		else
		{
			while (App.pollEvent(event))
			if (event.type == sf::Event::Closed)App.close();
			movingship(player, App);
			shooting(player, timer, shoot);
			if (started)
			{
				handleplayer(player, App, shieldtimer, eat, PB);
				
				if (wave2.getElapsedTime().asSeconds() < 15)
					movingRocks(R, rocktimer, cnt);

				for (int i = 0;i<cnt * 5 + 5;i++)
					if (!shielded && !player.Dead && !player.hitbyegg && !R[i].Dead && player.getShip().getGlobalBounds().intersects(R[i].getShape().getGlobalBounds()))
						player.minusHealth();

				for (int i = 0;i < cnt * 5 + 5;i++)
					for (int m = 0;m < B.size();m++)
						if (B[m].getArrow().getGlobalBounds().intersects(R[i].getShape().getGlobalBounds())) {
							R[i].minusHealth();
							B.erase(B.begin() + m);
						}
						else if (B.at(m).getArrow().getPosition().y < -2)
							B.erase(B.begin() + m);
			//	rocksOnScreen(R);
			}

		}
		// Clear the screen (fill it with black color)
		App.clear();

		if (!playing){ menu.draw(App); }

		else{
			App.draw(background);
			if (!started){ App.draw(intro); }
			else{

				App.draw(Life);
				App.draw(lives);
				App.draw(score);
				App.draw(PB);
				//draw your enemies here
				if (wave2.getElapsedTime().asSeconds()<15 && !player.Dead)
				for (int i = 0; i < 5 * cnt + 5; i++)
					if(!R[i].Dead&&!player.Dead)
					App.draw(R[i].getShape());

			}
			if (!player.Dead && !player.hitbyegg)
				App.draw(player.getShip());
			if (player.Dead)
				//|| wave2.getElapsedTime().asSeconds()>20)
				App.draw(conclusion);

			if (shielded && !player.Dead)
				App.draw(shield);
			if (B.size()>0 && !player.Dead) 
				for (int i = 0; i < B.size(); i++)
					App.draw(B[i].getArrow());
		}

		App.display();
	}

	return;


}
void handleround2(int level, sf::RenderWindow& App, Player& player)
{
	Menu menu(App.getSize().x, App.getSize().y);
	srand(unsigned(time(NULL)));
	bool started = false;
	//intialize some sounds
	sf::SoundBuffer sh;
	sh.loadFromFile("Ionblaster.oga");
	sf::Sound shoot;
	shoot.setBuffer(sh);
	shoot.setVolume(50);
	//add your sounds here
	sf::SoundBuffer l;
	sf::Sound laid;
	l.loadFromFile("Ci1egglay.oga");
	laid.setBuffer(l);
	sf::SoundBuffer e;
	sf::Sound eat;
	e.loadFromFile("Ci1foodeat.oga");
	eat.setBuffer(e);
	SoundBuffer mm;
	Sound menumusic;
	mm.loadFromFile("Ci1maintheme.oga");
	menumusic.setBuffer(mm);
	//initialize player pos
	player.setpos(350, 680);
	//some timers
	sf::Clock timer;
	timer.restart();
	shielded = true;
	sf::Clock shieldtimer;
	shieldtimer.restart();
	sf::Clock starttimer;
	starttimer.restart();
	//initialize background
	sf::Texture bg;
	sf::Sprite background;
	if (level == 3) {
		bg.loadFromFile("coral.jpg");
		background.setTexture(bg);
	}
	else if(level==1){
		bg.loadFromFile("space2.png");
		background.setTexture(bg);
		background.setScale(1.4, 1.4);
	}
	else if (level == 2) {
		bg.loadFromFile("sky.jpg");
		background.setTexture(bg);
		background.setScale(1.35, 1.35);
	}
	
	//shield
	sf::CircleShape shield(80);
	shield.setFillColor(sf::Color::Transparent);
	shield.setOutlineThickness(10);
	//hearts on top texture/sprite
	sf::Texture LI;
	LI.loadFromFile("heart.png");
	sf::Sprite Life;
	Life.setTexture(LI);
	Life.setPosition(5, 15);
	//pause button
	sf::Texture P;
	P.loadFromFile("pausebutton.png");
	sf::Sprite PB;
	PB.setTexture(P);
	PB.setPosition(App.getSize().x - 60, 0);

	//arial font
	sf::Font font;
	font.loadFromFile("futureforcescondital.ttf");
	sf::Text lives;
	lives.setFont(font);
	lives.setFillColor(sf::Color::White);
	lives.setPosition(55, -15);
	lives.setCharacterSize(70);
	//intialize score
	sf::Text score;
	score.setFont(font);
	score.setFillColor(sf::Color::White);
	score.setPosition(App.getSize().x / 2 - 100, 0);
	score.setCharacterSize(50);

	//conclusion
	sf::Text conclusion;
	conclusion.setFont(font);
	conclusion.setFillColor(sf::Color::White);
	conclusion.setPosition(150, 350);
	conclusion.setCharacterSize(80);

	//intialize intro text
	sf::Text intro;
	intro.setFont(font);
	intro.setFillColor(sf::Color::White);
	intro.setPosition(130, 250);
	intro.setCharacterSize(80);
	intro.setString("Level " + std::to_string(level) + " wave 3");

	//initialize your enemies here
	Chicken a[20];
	Chicken b[9];
	Chicken c[5];
	descendingChickensInitial(a, b, c, 20,level);
	Clock wave3;
	bool flag = true;
	n = 0;

	// Start game loop-----------------------------------------------------------------------------
	while (App.isOpen() && !inmain&&inlevel[(level - 1) * 4 + 2])
	{
		shield.setOrigin(-player.getShip().getPosition() + sf::Vector2f(30, 30));
		shield.setOutlineColor(sf::Color(100 * std::sin(shieldtimer.getElapsedTime().asSeconds()), 100 * std::cos(shieldtimer.getElapsedTime().asSeconds()), 100 + 100 * std::sin(shieldtimer.getElapsedTime().asSeconds())));
		shield.setRadius(80 + 10 * std::sin(shieldtimer.getElapsedTime().asSeconds()));
		lives.setString(std::to_string(player.getLifes()));
		score.setString("Score: " + std::to_string(player.getScore()));
		if (shieldtimer.getElapsedTime().asSeconds() > 10)shielded = false;
		if (!player.Dead && player.hitbyegg && player.deathtimer.getElapsedTime().asSeconds() >= 2){ player.hitbyegg = false; player.setpos(350, 680); shielded = true; shieldtimer.restart(); }
		if (player.Dead){ conclusion.setPosition(150, 350); conclusion.setString("YOU LOSE :P"); }
		if (starttimer.getElapsedTime().asSeconds() >= 3){ started = true; }

		if (!inlevel[(level - 1) * 4 + 3] && chickensDescendingOver(a, b, c)) {
			conclusion.setPosition(250, 250);
			conclusion.setString("YOU WIN :D\nNOW The Beast");
			player.setLevel(player.getLevel() + 1);
			transittimer.restart();
			inlevel[(level - 1) * 4 + 3] = true;
			if (!player.Dead) {
				
				updatesheet(player);
			}
		}
		if (player.Dead) {

			addScore2(player.getName(), player.getScore());
			player.setLevel(0);
			player.setLifes(3);
			player.setShots(1);
			player.setScore(0);
			inmain = true;
		}		
		
		if (inlevel[(level - 1) * 4 + 3] && transittimer.getElapsedTime().asSeconds() >= 3)
		{ inlevel[(level - 1) * 4 + 2] = false; }
		if (player.Dead) {
			inmain = true;
		}
		n = n % 40;
		sf::Event event;
		if (!playing)
		{ handlemenu(menu, App, event,menumusic); 
		if (firstmenu)
			starttimer.restart(); }
		else
		{
			while (App.pollEvent(event))
			if (event.type == sf::Event::Closed)App.close();
			movingship(player, App);
			shooting(player, timer, shoot);
			if (started)
			{
				if (flag) {
					wave3.restart();
					flag = false;
				}
				handleplayer(player, App, shieldtimer, eat, PB);
				handleChickenDescendingWave(a, b, c, player, wave3, level);
				for (int i = 0;i < 20;i++) {

					if (!shielded && !player.Dead && !player.hitbyegg && !a[i].Dead && player.getShip().getGlobalBounds().intersects(a[i].getCHShape().getGlobalBounds()))
						player.minusHealth();

					if(i<9)
						if (!shielded && !player.Dead && !player.hitbyegg && !b[i].Dead && player.getShip().getGlobalBounds().intersects(b[i].getCHShape().getGlobalBounds()))
							player.minusHealth();
					if(i<5)
						if (!shielded && !player.Dead && !player.hitbyegg && !c[i].Dead && player.getShip().getGlobalBounds().intersects(c[i].getCHShape().getGlobalBounds()))
							player.minusHealth();
				}
				chickenDescendingOnScreen(a, b, c);
			}
		}
		// Clear the screen (fill it with black color)
		App.clear();

		if (!playing){ menu.draw(App); }

		else{
			App.draw(background);
			if (!started){ App.draw(intro); }
			else{

				App.draw(Life);
				App.draw(lives);
				App.draw(score);
				App.draw(PB);
				for (int i = 0; i < 20; i++) {
					if (!a[i].Dead && !player.Dead)
						App.draw(a[i].getCHShape());
					if (i < 9) {
						if (!b[i].Dead && !player.Dead)
							App.draw(b[i].getCHShape());
					}
					if (i < 5) {
						if (!c[i].Dead && !player.Dead)
							App.draw(c[i].getCHShape());
					}
				}


				if (E.size()>0 && !player.Dead){
					for (int i = 0; i < E.size(); i++)
					{
						if (E[i].getBroken() == false){
							E[i].setpos(E[i].getShape().getPosition().x, E[i].getShape().getPosition().y + 1);
							App.draw(E[i].getShape());
						}

						if (E[i].getShape().getPosition().y >= App.getSize().y - 60 && E[i].getBroken() == false){
							E[i].setBroken(true);
						}
						if (E[i].getTimer()<0.5)App.draw(E[i].getShape());
						if (E[i].getTimer()>0.6 && E[i].getBroken()){ E.erase(E.begin() + i); }
					}
				}
				if (n > 0 && !player.Dead)
					for (int i = 0; i < n; i++)
				{
					BO[i].setpos(BO[i].getShape().getPosition().x, BO[i].getShape().getPosition().y + 0.9);
					App.draw(BO[i].getShape());
				}
			}
			if (!player.Dead && !player.hitbyegg)
				App.draw(player.getShip());
			
			if (player.Dead || chickensDescendingOver(a, b, c))
				App.draw(conclusion);

			if (shielded && !player.Dead)
				App.draw(shield);
			if (B.size() > 0 && !player.Dead)
				for (int i = 0; i < B.size(); i++)
					App.draw(B[i].getArrow());
		}

		App.display();
	}

	return;


}
void handleround3(int level, sf::RenderWindow& App, Player& player){
	Menu menu(App.getSize().x, App.getSize().y);
	srand(unsigned(time(NULL)));
	bool started = false;
	//intialize some sounds
	sf::SoundBuffer sh;
	sh.loadFromFile("Ionblaster.oga");
	sf::Sound shoot;
	shoot.setBuffer(sh);
	shoot.setVolume(50);
	//add you sounds here
	sf::SoundBuffer l;
	sf::Sound laid;
	l.loadFromFile("Ci1egglay.oga");
	laid.setBuffer(l);
	sf::SoundBuffer e;
	sf::Sound eat;
	e.loadFromFile("Ci1foodeat.oga");
	eat.setBuffer(e);
	SoundBuffer mm;
	Sound menumusic;
	mm.loadFromFile("Ci1maintheme.oga");
	menumusic.setBuffer(mm);
	//initialize player pos
	player.setpos(350, 680);
	//some timers
	sf::Clock timer;
	timer.restart();
	shielded = true;
	sf::Clock shieldtimer;
	shieldtimer.restart();
	sf::Clock starttimer;
	starttimer.restart();
	//initialize background
	sf::Texture bg;
	sf::Sprite background;
	if (level == 3) {
		bg.loadFromFile("coral.jpg");
		background.setTexture(bg);
	}
	else if(level==1) {
		bg.loadFromFile("space2.png");
		background.setTexture(bg);
		background.setScale(1.4, 1.4);
	}
	else if (level == 2) {
		bg.loadFromFile("sky.jpg");
		background.setTexture(bg);
		background.setScale(1.35, 1.35);
	}
	////sliding
	//sf::Sprite background2;
	//bg.loadFromFile("space2.png");
	//background2.setTexture(bg);
	//background2.setScale(1.4, 1.4);
	//background2.setPosition(600, 0);

	//shield
	sf::CircleShape shield(80);
	shield.setFillColor(sf::Color::Transparent);
	shield.setOutlineThickness(10);
	//hearts on top texture/sprite
	sf::Texture LI;
	LI.loadFromFile("heart.png");
	sf::Sprite Life;
	Life.setTexture(LI);
	Life.setPosition(5, 15);
	//pause button
	sf::Texture P;
	P.loadFromFile("pausebutton.png");
	sf::Sprite PB;
	PB.setTexture(P);
	PB.setPosition(App.getSize().x - 60, 0);

	bool flag = true;

	//arial font
	sf::Font font;
	font.loadFromFile("futureforcescondital.ttf");
	sf::Text lives;
	lives.setFont(font);
	lives.setFillColor(sf::Color::White);
	lives.setPosition(55, -15);
	lives.setCharacterSize(70);
	//intialize score
	sf::Text score;
	score.setFont(font);
	score.setFillColor(sf::Color::White);
	score.setPosition(App.getSize().x / 2 - 100, 0);
	score.setCharacterSize(50);
	//conclusion
	sf::Text conclusion;
	conclusion.setFont(font);
	conclusion.setFillColor(sf::Color::White);
	conclusion.setPosition(150, 350);
	conclusion.setCharacterSize(80);
	//intialize intro text
	sf::Text intro;
	intro.setFont(font);
	intro.setFillColor(sf::Color::White);
	intro.setPosition(130, 250);
	intro.setCharacterSize(80);
	intro.setString("Level " + std::to_string(level) + " wave 4");
	//initialize enemies here
	Chicken beast;
	beast.levelelwa7sh(level);
	SoundBuffer yw;
	yw.loadFromFile("youwin.ogg");
	Sound youwin;
	youwin.setBuffer(yw);
	Clock wave4, win;
	wave4.restart();

	n = 0;
	// Start game loop-----------------------------------------------------------------------------
	while (App.isOpen() && !inmain && inlevel[(level - 1) * 4 + 3])
	{
		shield.setOrigin(-player.getShip().getPosition() + sf::Vector2f(30, 30));
		shield.setOutlineColor(sf::Color(100 * std::sin(shieldtimer.getElapsedTime().asSeconds()), 100 * std::cos(shieldtimer.getElapsedTime().asSeconds()), 100 + 100 * std::sin(shieldtimer.getElapsedTime().asSeconds())));
		shield.setRadius(80 + 10 * std::sin(shieldtimer.getElapsedTime().asSeconds()));
		lives.setString(std::to_string(player.getLifes()));
		score.setString("Score: " + std::to_string(player.getScore()));
		if (shieldtimer.getElapsedTime().asSeconds() > 10)
			shielded = false;
		if (!player.Dead && player.hitbyegg && player.deathtimer.getElapsedTime().asSeconds() >= 2)
		{ player.hitbyegg = false; 
		player.setpos(350, 680); 
		shielded = true; 
		shieldtimer.restart(); 
		}
		if (player.Dead)
		{ conclusion.setPosition(150, 350); 
		conclusion.setString("YOU LOSE :P"); 
		}
		if (starttimer.getElapsedTime().asSeconds() >= 3)
		{ started = true; }
		if (level <= 3){
			if (!inlevel[(level - 1) * 4 + 4] && beast.Dead)
			{
				conclusion.setPosition(100, 250);
				if (level < 3) {
					conclusion.setString("  Get Ready For \n     Planet " + to_string(level + 1));
					player.setLevel(player.getLevel() + 1);
				}
				transittimer.restart();
				inlevel[(level - 1) * 4 + 4] = true;
				if (!player.Dead) {
					
					updatesheet(player);
				}
			}
				
			if (player.Dead || (beast.Dead&&level==3)){

				addScore2(player.getName(), player.getScore());
				player.setLevel(0);
				player.setLifes(3);
				player.setShots(1);
				player.setScore(0);
				inmain = true;
				//inlevel[(level - 1) * 4 + 3] = false;
			}
			
			
			
			if (inlevel[(level - 1) * 4 + 4] && transittimer.getElapsedTime().asSeconds() >= 3)
			{ inlevel[(level - 1) * 4 + 3] = false; }
		}
		else{
			if (!scoretaken)
				addScore2(player.getName(), player.getScore());
			else if(beast.Dead&&level==3)
			{ inlevel[(level - 1) * 4 + 3] = false;
			conclusion.setString("YOU WIN"); 
			//inmain = true;
			}
		}
		/*if (win.getElapsedTime().asSeconds() > 3&&beast.Dead&&level==3) {
				youwin.stop();
				inmain = true;
			}*/
		if (player.Dead) {
			inmain = true;
		}
		n = n % 40;
		sf::Event event;
		if (!playing){ handlemenu(menu, App, event,menumusic); if (firstmenu)starttimer.restart(); }
		else
		{
			while (App.pollEvent(event))
			if (event.type == sf::Event::Closed)App.close();
			movingship(player, App);
			shooting(player, timer, shoot);
			if (started)
			{
				handleplayer(player, App, shieldtimer, eat, PB);
				beastMovement(beast, wave4);

				if (!shielded && !player.Dead && !beast.Dead&& !player.hitbyegg && player.getShip().getGlobalBounds().intersects(beast.getCHShape().getGlobalBounds()))
					player.minusHealth();

				for (int m = 0; m < B.size(); m++)
				if (!beast.Dead && beast.getCHShape().getGlobalBounds().intersects(B.at(m).getArrow().getGlobalBounds()))
				{
					beast.beastminushealth();
					B.erase(B.begin() + m);
				}
				else if (B.at(m).getArrow().getPosition().y < -5)
					B.erase(B.begin() + m);
				//dropping eggs
				int random = rand() % 500;
				if (random == 0)
				{if (!beast.Dead&&!player.Dead)
					{
						E.push_back(egg); E.at(E.size() - 1).setSpeedfactor(((rand() % 51) / 100.0) + 1);
						E.at(E.size() - 1).setpos(beast.getCHShape().getPosition().x + 120, beast.getCHShape().getPosition().y + 260);
						laid.play();
					}
				}
				if (beast.Dead && flag) {
					player.setScore(player.getScore() + 2000 * player.getLevel());
					flag = false;
				}
			}
		}
		// Clear the screen (fill it with black color)
		App.clear();

		if (!playing){ menu.draw(App); }

		else{
			App.draw(background);
			if (!started)
			{ App.draw(intro); }
			else{

				App.draw(Life);
				App.draw(lives);
				App.draw(score);
				App.draw(PB);
				if (!beast.Dead && !player.Dead)
					App.draw(beast.getCHShape());

				if (E.size()>0 && !player.Dead && !beast.Dead){
					for (int i = 0; i < E.size(); i++)
					{
						if (E[i].getBroken() == false){
							E[i].setpos(E[i].getShape().getPosition().x, E[i].getShape().getPosition().y + (0.3*E[i].getSpeedfactor()));
							App.draw(E[i].getShape());
						}

						if (E[i].getShape().getPosition().y >= App.getSize().y - 60 && E[i].getBroken() == false){
							E[i].setBroken(true);
						}
						if (E[i].getTimer()<0.5)
							App.draw(E[i].getShape());
						if (E[i].getTimer()>0.6 && E[i].getBroken())
						{ E.erase(E.begin() + i); }
					}
				}

				if (n > 0 &&!beast.Dead)
					for (int i = 0; i < n; i++)
				{
					BO[i].setpos(BO[i].getShape().getPosition().x, BO[i].getShape().getPosition().y + 0.25);
					
					App.draw(BO[i].getShape());
				}
			}

			if (!player.Dead && !player.hitbyegg)
				App.draw(player.getShip());

			if (player.Dead || beast.Dead)
				App.draw(conclusion);

			if (beast.Dead && level == 3) {
				
			//	youwin.play();
				win.restart();
				gameover = true;
			}

			

			if (shielded && !player.Dead && !beast.Dead)
				App.draw(shield);
			for (int i = 0; i < B.size(); i++)
				if(!player.Dead&&!beast.Dead)
				App.draw(B[i].getArrow());
		}

		App.display();
	}

	return;


}
void handlemain(sf::RenderWindow& App, Player& player, sf::Event& event){
	Menu main(App.getSize().x, App.getSize().y, "Start Journey", "Hall of Fame", "Exit");
	bool playerloaded = false;
	int pressedacc;
	sf::Font font;
	if (!font.loadFromFile("arial.ttf"))
	{
		cout << "font not loaded";
	}
	//list of users
	vector<sf::Text> players;

	//choose and delete
	sf::Text options[2];
	for (int i = 0; i < 2; i++)
	{
		options[i].setFont(font);
		options[i].setCharacterSize(25);
		options[0].setString("Delete");
		options[i].setPosition(App.getSize().x - 25 * options[1].getString().getSize() - 25 * options[0].getString().getSize(), App.getSize().y);
		options[1].setString("Choose");

	}
	//title of account
	sf::Text account, store;
	store.setFont(font);
	account.setFont(font);
	account.setCharacterSize(40);
	account.setPosition(App.getSize().x / 4 + 10, App.getSize().y / 2 - 100);
	account.setString("Choose an account");
	//border of title
	sf::RectangleShape border, border1;
	border.setFillColor(sf::Color::Transparent);
	border1.setFillColor(sf::Color::Transparent);
	border.setOutlineThickness(5);
	border1.setOutlineThickness(5);
	border.setSize(sf::Vector2f(account.getCharacterSize()*account.getString().getSize() / 1.9, 1.5* account.getCharacterSize()));

	while (App.isOpen() && inmain){
		if (gamejustopened)
		{
			account.setPosition(App.getSize().x / 4 + 10, App.getSize().y / 2 - 100);
			account.setString("Choose an account");
			border.setPosition(account.getPosition());
			border.setSize(sf::Vector2f(account.getCharacterSize()*account.getString().getSize() / 1.9, 1.5* account.getCharacterSize()));

			main.disable(App);//hide start game and exit
			//back to white
			account.setFillColor(sf::Color::White);
			border.setOutlineColor(sf::Color::White);
			options[0].setFillColor(sf::Color::White);
			options[1].setFillColor(sf::Color::White);
			for (int i = 0; i < players.size(); i++)
				players.at(i).setFillColor(sf::Color::White);
			if (players.size() <= 2){
				options[0].setPosition(options[0].getPosition().x, App.getSize().y);
			}

			//if x is pressed
			while (App.pollEvent(event))
			{
				if (event.type == sf::Event::Closed)
				{
					App.close();
				}

			}
			//if hovering over...
			//choose and delete
			for (int i = 0; i < 2; i++)
			{
				if (options[i].getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
				{
					options[i].setFillColor(sf::Color::Red);
				}
			}
			//borders and account
			if (border.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
			{
				account.setFillColor(sf::Color::Red);
				border.setOutlineColor(sf::Color::Red);
			}
			//the list of players
			for (int i = 0; i < players.size(); i++)
			if (players.at(i).getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
			{
				players.at(i).setFillColor(sf::Color::Red);
			}
			//if mouse is pressed on...
			if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
			{
				//title
				if (!playerloaded&&border.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
				{
					loadplayer(App, players);
					playerloaded = true;
				}
				//list of names==> gets you choose and delete 
				if (playerloaded){
					for (int i = 0; i < players.size() - 1; i++)
					if (players.at(i).getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
					{
						for (int j = 0; j < 2; j++)
							options[j].setPosition(options[j].getPosition().x, players[i].getPosition().y);
						pressedacc = i;
					}
					//pressing on create new
					if (players.at(players.size() - 1).getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
					{
						//full list of users
						if (players.size() == 5){
							sf::Text full;
							full.setFont(font);
							full.setCharacterSize(25);
							full.setString("You have reached the maximum number of users.\nPlease delete one of the accounts in order to proceed!");
							full.setPosition(0, 0);
							sf::RenderWindow fullmsg(sf::VideoMode(full.getCharacterSize()*full.getString().getSize() / 4, full.getCharacterSize()*2.5, 32), "Full Capicity Reached");
							while (fullmsg.isOpen())
							{
								sf::Event event2;
								while (fullmsg.pollEvent(event2))
								{
									if ((event2.type == sf::Event::Closed) || ((sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))))
										fullmsg.close();
								}
								fullmsg.clear(sf::Color(169, 169, 169));
								fullmsg.draw(full);
								fullmsg.display();
							}
						}
						//not full gets you new page to enter the new user name when you press done
						else{
							for (int j = 0; j < 2; j++)
								options[j].setPosition(options[j].getPosition().x, App.getSize().y);
							pressedacc = players.size() - 2;
							sf::RenderWindow create(sf::VideoMode(400, 200, 32), "Enter a new username");
							sf::Text mine;
							mine.setFont(font);
							mine.setCharacterSize(25);
							mine.setString("Username:");
							mine.setPosition(create.getSize().x / 2 - 7 * mine.getString().getSize(), 50);
							sf::Text yours;
							yours.setFont(font);
							yours.setCharacterSize(25);
							yours.setString("");
							sf::Text done;
							done.setFont(font);
							done.setCharacterSize(25);
							done.setString("Done");

							sf::Clock backspacetimer;
							while (create.isOpen())
							{
								done.setFillColor(sf::Color::White);
								yours.setPosition(create.getSize().x / 2 - 7.5 * yours.getString().getSize(), 100);
								if (yours.getString().getSize() > 0){ done.setPosition(create.getSize().x - 60, create.getSize().y - 30); }
								else { done.setPosition(create.getSize().x, App.getSize().y); }
								sf::Event event2;
								while (create.pollEvent(event2))
								{
									if ((event2.type == sf::Event::Closed) || ((sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))))
										create.close();
								}
								if (done.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(create))))
								{
									done.setFillColor(sf::Color::Red);
								}
								if (sf::Keyboard::isKeyPressed(sf::Keyboard::BackSpace) && backspacetimer.getElapsedTime().asSeconds() > 0.15)
								{
									string s = std::string(yours.getString()); if (s.size() > 0)s.resize(s.size() - 1);
									yours.setString(s);
									backspacetimer.restart();
								}
								else
								for (int i = 0; i < 102; i++)if (sf::Keyboard::isKeyPressed(sf::Keyboard::Key(i)) && backspacetimer.getElapsedTime().asSeconds() > 0.15)
								{
									if (i != 57 && i != 59){ yours.setString(std::string(yours.getString()) + fromKtoS(sf::Keyboard::Key(i))); }
									backspacetimer.restart();
								}
								if (sf::Mouse::isButtonPressed(sf::Mouse::Left) && done.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(create))))
								{
									addplayer(string(yours.getString()));
									create.close();
									loadplayer(App, players);
								}
								create.clear(sf::Color(169, 169, 169));
								create.draw(mine);
								create.draw(yours);
								create.draw(done);
								create.display();
							}
						}


					}
				}
				//delete is pressed
				if (options[0].getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
				{
					bool agreed = false;
					sf::Text yes;
					yes.setFont(font);
					yes.setCharacterSize(25);
					yes.setString("Yes");
					sf::Text no;
					no.setFont(font);
					no.setCharacterSize(25);
					no.setString("No");
					sf::Text confirm;
					confirm.setFont(font);
					confirm.setCharacterSize(25);
					confirm.setString("Are you sure you want to permenetly delete this user " + string(players.at(pressedacc).getString()) + "?");
					confirm.setPosition(0, 0);
					sf::RenderWindow deletemsg(sf::VideoMode(confirm.getCharacterSize()*confirm.getString().getSize() / 2, confirm.getCharacterSize() * 4, 32), "Data Will Be Lost");
					yes.setPosition(deletemsg.getSize().x / 2 + 30, deletemsg.getSize().y - 50);
					no.setPosition(deletemsg.getSize().x / 2 - 30, deletemsg.getSize().y - 50);
					while (deletemsg.isOpen())
					{
						sf::Event event2;
						while (deletemsg.pollEvent(event2))
						{
							if ((event2.type == sf::Event::Closed) || ((sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))))
								deletemsg.close();
						}
						yes.setFillColor(sf::Color::White);
						no.setFillColor(sf::Color::White);
						if (yes.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(deletemsg))))
						{
							yes.setFillColor(sf::Color::Red);
						}
						if (no.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(deletemsg))))
						{
							no.setFillColor(sf::Color::Red);
						}
						if (sf::Mouse::isButtonPressed(sf::Mouse::Left)){
							if (yes.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(deletemsg))))
							{
								agreed = true;
								deletemsg.close();
							}
							if (no.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(deletemsg))))
							{
								agreed = false;
								deletemsg.close();
							}
						}
						deletemsg.clear(sf::Color(169, 169, 169));
						deletemsg.draw(confirm);
						deletemsg.draw(yes);
						deletemsg.draw(no);
						deletemsg.display();
					}
					if (agreed){
						deleteplayer(pressedacc, players.size() - 2);
						for (int j = 0; j < 2; j++)
							options[j].setPosition(options[j].getPosition().x, App.getSize().y);
						loadplayer(App, players);
					}
				}
				//choose is pressed
				if (options[1].getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
				{
					{
						bool agreed = false;
						sf::Text yes;
						yes.setFont(font);
						yes.setCharacterSize(25);
						yes.setString("Yes");
						sf::Text no;
						no.setFont(font);
						no.setCharacterSize(25);
						no.setString("No");
						sf::Text confirm;
						confirm.setFont(font);
						confirm.setCharacterSize(25);
						confirm.setString("Are you sure you want Choose this user " + string(players.at(pressedacc).getString()) + "?");
						confirm.setPosition(0, 0);
						sf::RenderWindow conmsg(sf::VideoMode(confirm.getCharacterSize()*confirm.getString().getSize() / 2, confirm.getCharacterSize() * 4, 32), "Choosing Confirmation");
						yes.setPosition(conmsg.getSize().x / 2 + 30, conmsg.getSize().y - 50);
						no.setPosition(conmsg.getSize().x / 2 - 30, conmsg.getSize().y - 50);
						while (conmsg.isOpen())
						{
							sf::Event event2;
							while (conmsg.pollEvent(event2))
							{
								if ((event2.type == sf::Event::Closed) || ((sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))))
									conmsg.close();
							}
							yes.setFillColor(sf::Color::White);
							no.setFillColor(sf::Color::White);
							if (yes.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(conmsg))))
							{
								yes.setFillColor(sf::Color::Red);
							}
							if (no.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(conmsg))))
							{
								no.setFillColor(sf::Color::Red);
							}
							if (sf::Mouse::isButtonPressed(sf::Mouse::Left)){
								if (yes.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(conmsg))))
								{
									agreed = true;
									conmsg.close();
								}
								if (no.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(conmsg))))
								{
									agreed = false;
									conmsg.close();
								}
							}
							conmsg.clear(sf::Color(169, 169, 169));
							conmsg.draw(confirm);
							conmsg.draw(yes);
							conmsg.draw(no);
							conmsg.display();
						}
						if (agreed)
						{
							chooseplayer(player, pressedacc);
							gamejustopened = false;
							main.enable(App);
						}

					}
				}
			}
		}
		else{
			players.clear();
			for (int j = 0; j < 2; j++)
				options[j].setPosition(options[j].getPosition().x, App.getSize().y);
			account.setString("Change \nAccount");
			account.setPosition(0.75*App.getSize().x, 0.4*App.getSize().y);
			account.setFillColor(sf::Color::White);
			border.setSize(sf::Vector2f(account.getCharacterSize()*account.getString().getSize() / 3.8, 3 * account.getCharacterSize()));
			border.setPosition(account.getPosition());
			border.setOutlineColor(sf::Color::White);
			if (border.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
			{
				account.setFillColor(sf::Color::Red);
				border.setOutlineColor(sf::Color::Red);
			}

			if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
			if (border.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
			{
				gamejustopened = true;
				playerloaded = false;
			}

			store.setString("Store");
			store.setPosition(0.75*App.getSize().x, 0.6*App.getSize().y);
			store.setFillColor(sf::Color::White);
			border1.setSize(sf::Vector2f(store.getCharacterSize()*store.getString().getSize() / 1.8, 1.5 * store.getCharacterSize()));
			border1.setPosition(store.getPosition());
			border1.setOutlineColor(sf::Color::White);
			if (border1.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
			{
				store.setFillColor(sf::Color::Red);
				border1.setOutlineColor(sf::Color::Red);
			}

			if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
				if (border1.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
				{
					handleStore(player);
				}
			while (App.pollEvent(event))
			{
				switch (event.type)
				{
				case sf::Event::Closed:
					App.close();
					break;
				case sf::Event::KeyReleased:
					switch (event.key.code)
					{
					case sf::Keyboard::Up:
						main.MoveUp();
						break;

					case sf::Keyboard::Down:
						main.MoveDown();
						break;

					case sf::Keyboard::Return:
						switch (main.GetPressedItem())
						{
						case 0:
							inmain = false;
							playing = false;
							scoretaken = false;
							inlevel[player.getLevel()] = true;
							break;
						case 1:
							readscores(App, players);
							main.disable(App);
							playerloaded = true;
							while (playerloaded&&App.isOpen())
							{
								if (players[players.size() - 1].getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
								{
									players.at(players.size() - 1).setFillColor(sf::Color::Red);
									if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
									{
										main.enable(App); players.clear(); playerloaded = false;
									}
								}
								App.clear();
								main.draw(App);
								for (int i = 0; i < players.size(); i++){
									players.at(i).setFont(font);
									App.draw(players.at(i));
								}
								App.display();
							}

							break;
						case 2:
							App.close();
							break;
						}

						break;
					}

					break;
				}
			}

		}
		App.clear();
		main.draw(App);
		App.draw(account);
		App.draw(store);
		App.draw(border1);
		App.draw(border);
		for (int i = 0; i < 2; i++)
			App.draw(options[i]);

		if (playerloaded)for (int i = 0; i < players.size(); i++){
			players.at(i).setFont(font);
			App.draw(players.at(i));
		}


		App.display();

	}
}
void loadplayer(sf::RenderWindow& App, vector<sf::Text>& players){
	ifstream file;
	players.clear();
	sf::Text playername;
	playername.setFillColor(sf::Color::White);
	file.open("accounts.txt");
	if (!file.fail()){
		string name;
		while (!file.eof() && players.size() < 4){
			getline(file, name);
			name.resize(name.find(" "));
			playername.setString(name);
			players.push_back(playername);
		}file.close();
	}
	else cout << "error loading account.txt";
	playername.setString("CREATE A NEW ACCOUNT");
	players.push_back(playername);
	for (int i = 0; i < players.size(); i++)
	{
		players[i].setPosition(sf::Vector2f(App.getSize().x / 2 - 30 - players[i].getString().getSize() * 8, 400 + (App.getSize().y - 400) / (players.size() + 1) * i));
	}

}
string fromKtoS(const sf::Keyboard::Key& k){
	string ret;
	switch (k){

	case sf::Keyboard::A:

		ret = "A";
		break;
	case sf::Keyboard::B:

		ret = "B";
		break;
	case sf::Keyboard::C:

		ret = "C";
		break;
	case sf::Keyboard::D:

		ret = "D";
		break;
	case sf::Keyboard::E:

		ret = "E";
		break;
	case sf::Keyboard::F:

		ret = "F";
		break;
	case sf::Keyboard::G:

		ret = "G";
		break;
	case sf::Keyboard::H:

		ret = "H";
		break;
	case sf::Keyboard::I:

		ret = "I";
		break;
	case sf::Keyboard::J:

		ret = "J";
		break;
	case sf::Keyboard::K:

		ret = "K";
		break;
	case sf::Keyboard::L:

		ret = "L";
		break;
	case sf::Keyboard::M:

		ret = "M";
		break;
	case sf::Keyboard::N:

		ret = "N";
		break;
	case sf::Keyboard::O:

		ret = "O";
		break;
	case sf::Keyboard::P:

		ret = "P";
		break;
	case sf::Keyboard::Q:

		ret = "Q";
		break;
	case sf::Keyboard::R:

		ret = "R";
		break;
	case sf::Keyboard::S:

		ret = "S";
		break;
	case sf::Keyboard::T:

		ret = "T";
		break;
	case sf::Keyboard::U:

		ret = "U";
		break;
	case sf::Keyboard::V:

		ret = "V";
		break;
	case sf::Keyboard::W:

		ret = "W";
		break;
	case sf::Keyboard::X:

		ret = "X";
		break;
	case sf::Keyboard::Y:

		ret = "Y";
		break;
	case sf::Keyboard::Z:

		ret = "Z";
		break;
	case sf::Keyboard::Num0:

		ret = "0";
		break;
	case sf::Keyboard::Num1:

		ret = "1";
		break;
	case sf::Keyboard::Num2:

		ret = "2";
		break;
	case sf::Keyboard::Num3:

		ret = "3";
		break;
	case sf::Keyboard::Num4:

		ret = "4";
		break;
	case sf::Keyboard::Num5:

		ret = "5";
		break;
	case sf::Keyboard::Num6:

		ret = "6";
		break;
	case sf::Keyboard::Num7:

		ret = "7";
		break;
	case sf::Keyboard::Num8:

		ret = "8";
		break;
	case sf::Keyboard::Num9:

		ret = "9";
		break;

	case sf::Keyboard::Comma:

		ret = ",";
		break;
	case sf::Keyboard::Period:

		ret = ".";
		break;
	case sf::Keyboard::Equal:

		ret = "=";
		break;
	case sf::Keyboard::Dash:

		ret = "-";
		break;
	case sf::Keyboard::Space:

	case sf::Keyboard::Numpad0:

		ret = "0";
		break;
	case sf::Keyboard::Numpad1:

		ret = "1";
		break;
	case sf::Keyboard::Numpad2:

		ret = "2";
		break;
	case sf::Keyboard::Numpad3:

		ret = "3";
		break;
	case sf::Keyboard::Numpad4:

		ret = "4";
		break;
	case sf::Keyboard::Numpad5:

		ret = "5";
		break;
	case sf::Keyboard::Numpad6:

		ret = "6";
		break;
	case sf::Keyboard::Numpad7:

		ret = "7";
		break;
	case sf::Keyboard::Numpad8:

		ret = "8";
		break;
	case sf::Keyboard::Numpad9:

		ret = "9";
		break;


	default:
		ret = "";
		break;
	}
	return ret;






}
void addplayer(string name){
	ifstream inp;
	ofstream file;
	char c;
	inp.open("accounts.txt");
	if (!inp.fail()){
		file.open("temp.txt");
		if (!file.fail()){
			inp.get(c);
			while (!inp.eof())
			{
				file.put(c);
				inp.get(c);
			}
			inp.close();
			file << endl << name << " " << "0" << " " << "0" << " " << "3" << " " << "1";
			file.flush();
			file.close();
		}
		else cout << "error loading temp.txt";
	}
	else cout << "error loading account.txt";

	inp.open("temp.txt");
	if (!inp.fail()){
		file.open("accounts.txt");
		if (!file.fail()){
			inp.get(c);
			while (!inp.eof())
			{
				file.put(c);
				inp.get(c);
			}
			inp.clear();
			inp.close();
			file.close();
		}
		else cout << "error loading account.txt";
	}
	else cout << "error loading temp.txt";

}
void deleteplayer(int z, int size){
	ifstream inp;
	ofstream file;
	char c;
	int i = 0;
	inp.open("accounts.txt");
	if (!inp.fail()){
		file.open("temp.txt");
		if (!file.fail()){
			inp.get(c);
			while (!inp.eof())
			{

				if (z == size){
					if (i == size - 1 && c == '\n');
					else if (i == z);
					else file.put(c);
				}
				else
				if (i != z)file.put(c);
				if (c == '\n')
					i++;
				inp.get(c);
			};
			inp.close();
			file.flush();
			file.close();
		}
		else cout << "error loading temp.txt";
	}
	else cout << "error loading account.txt";

	inp.open("temp.txt");
	if (!inp.fail()){
		file.open("accounts.txt");
		if (!file.fail()){
			inp.get(c);
			while (!inp.eof())
			{
				file.put(c);
				inp.get(c);
			}
			inp.clear();
			inp.close();
			file.close();
		}
		else cout << "error loading account.txt";
	}
	else cout << "error loading temp.txt";

}
void chooseplayer(Player& player, int pos){
	ifstream file;
	int i = 0;
	char c;
	string name;
	file.open("accounts.txt");
	if (!file.fail()){
		while (!file.eof() && i != pos){
			file.get(c);
			if (c == '\n')i++;
		}
		file >> name;
		player.setName(name);
		file >> name;
		player.setLevel(stoi(name));
		file >> name;
		player.setScore(stoi(name));
		file >> name;
		player.setLifes(stoi(name));
		file >> name;
		player.setShots(stoi(name));
		file.close();
	}

}
void updatesheet(Player& player){
	ifstream inp;
	ofstream file;
	char c;
	string name;
	inp.open("accounts.txt");
	if (!inp.fail()){
		file.open("temp.txt");
		if (!file.fail()){
			getline(inp, name);
			if (!name.find(player.getName() + " ")) 
				file << player.getName() << " " << player.getLevel() << " " << player.getScore() << " " << player.getLifes() << " " << player.getShots();
			
			else
				file << name;
			while (!inp.eof())
			{
				getline(inp, name);
				if (!name.find(player.getName() + " ")) 
					 file << endl << player.getName() << " " << player.getLevel() << " " << player.getScore() << " " << player.getLifes() << " " << player.getShots();
				
				else
					file << endl << name;

			}
			inp.close();
			file.flush();
			file.close();
		}
		else cout << "error loading temp.txt";
	}
	else cout << "error loading account.txt";

	inp.open("temp.txt");
	if (!inp.fail()){
		file.open("accounts.txt");
		if (!file.fail()){
			inp.get(c);
			while (!inp.eof())
			{
				file.put(c);
				inp.get(c);
			}
			inp.clear();
			inp.close();
			file.close();
		}
		else cout << "error loading account.txt";
	}
	else cout << "error loading temp.txt";

}
void movingship(Player& player, sf::RenderWindow& App){
	if (keyboardf){
		if (sf::Keyboard::isKeyPressed(sf::Keyboard::Right) && player.getShip().getPosition().x < 690)
			player.setpos(player.getShip().getPosition().x + 0.75, player.getShip().getPosition().y);
		else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Left) && player.getShip().getPosition().x>0)
			player.setpos(player.getShip().getPosition().x - 0.75, player.getShip().getPosition().y);
		else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Down) && player.getShip().getPosition().y < 680)

			player.setpos(player.getShip().getPosition().x, player.getShip().getPosition().y + 0.75);

		else if (sf::Keyboard::isKeyPressed(sf::Keyboard::Up) && player.getShip().getPosition().y > 0)
			player.setpos(player.getShip().getPosition().x, player.getShip().getPosition().y - 0.75);
	}
	if (mousef)
		player.setpos(App.mapPixelToCoords(sf::Mouse::getPosition(App)).x, App.mapPixelToCoords(sf::Mouse::getPosition(App)).y);
}
void shooting(Player& player, sf::Clock& timer, sf::Sound& shoot){

	if (!player.Dead &&!player.hitbyegg && (sf::Keyboard::isKeyPressed(sf::Keyboard::Space) || sf::Mouse::isButtonPressed(sf::Mouse::Left)) && timer.getElapsedTime().asSeconds() > 0.4)
	{
		for (int i = 0; i < player.getShots(); i++)
		{
			B.push_back(bullet);
			B.at(B.size() - 1).setpos(player.getShip().getPosition().x + 43, player.getShip().getPosition().y - 50);
			if (player.getShots() == 2){
				if (i == 0)B.at(B.size() - 1).setpos(B.at(B.size() - 1).getArrow().getPosition().x + 23, B.at(B.size() - 1).getArrow().getPosition().y);
				else if (i == 1)B.at(B.size() - 1).setpos(B.at(B.size() - 1).getArrow().getPosition().x - 23, B.at(B.size() - 1).getArrow().getPosition().y);
			}
			else if (player.getShots() == 3){
				if (i == 0)B.at(B.size() - 1).setrotation(20);
				else if (i == 1)B.at(B.size() - 1).setrotation(-20);
			}
		}
		shoot.play();
		timer.restart();
	}
	if (B.size() > 0){
		if (player.getShots() < 3)for (int i = 0; i < B.size(); i++){ B[i].setpos(B[i].getArrow().getPosition().x, B[i].getArrow().getPosition().y - 1); }
		else for (int i = 0; i < B.size(); i++)
		{
			if (B.at(i).getrotation() == 20)
				B[i].setpos(B[i].getArrow().getPosition().x + 0.447, B[i].getArrow().getPosition().y - 1);
			else if (B.at(i).getrotation() == 340)
				B[i].setpos(B[i].getArrow().getPosition().x - 0.447, B[i].getArrow().getPosition().y - 1);
			else if (B.at(i).getrotation() == 0)
				B[i].setpos(B[i].getArrow().getPosition().x, B[i].getArrow().getPosition().y - 1);
		}
	}
}
void handleplayer(Player& player, sf::RenderWindow& App, sf::Clock& shieldtimer, sf::Sound& eat, sf::Sprite& PB){
	//clicking pause
	if (sf::Mouse::isButtonPressed(sf::Mouse::Left))
	{
		//if pause is pressed
		if (PB.getGlobalBounds().contains(sf::Vector2f(sf::Mouse::getPosition(App))))
		{
			playing = false;
		}
	}
	if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape)){ playing = !playing; }
	//collecting pickups
	for (int m = 0; m < n; m++)
	if (!player.Dead&& !player.hitbyegg && player.getShip().getGlobalBounds().intersects(BO[m].getShape().getGlobalBounds()))
	{
		switch (BO[m].getName())
		{
		case(life) : player.setLifes(player.getLifes() + 1); break;
		case(immunity) : shielded = true; shieldtimer.restart(); break;
		case(meat) : player.setScore(player.getScore() + 50); eat.play(); break;
		case(fire) : player.setShots(player.getShots() + 1); break;
		}
		BO[m].setpos(1000, 1000);
	}
	//hitting eggs
	for (int m = 0; m < E.size(); m++)
	if (!shielded&&!player.Dead&&!player.hitbyegg && E.at(m).getBroken() == false && player.getShip().getGlobalBounds().intersects(E.at(m).getShape().getGlobalBounds()))
	{
		player.minusHealth(); E.erase(E.begin() + m);
	}
}
void handlechicken(Player& player, Chicken round1[][number], sf::Sound& laid,int level){
	//hitting chicken
	for (int i = 0; i < number; i++)
	for (int j = 0; j < number; j++)
	for (int m = 0; m < B.size(); m++)
	if (round1[i][j].Dead == false && round1[i][j].getCHShape().getGlobalBounds().intersects(B.at(m).getArrow().getGlobalBounds()))
	{
		round1[i][j].minusHealth(); B.erase(B.begin() + m);
	}
	else if (B.at(m).getArrow().getPosition().y < -50) B.erase(B.begin() + m);
	//Pickups
	for (int i = 0; i < number; i++)
	for (int j = 0; j < number; j++){
	if (round1[i][j].Dead && round1[i][j].justdead){
		if (level == 3 && round1[i][j].Dead && round1[i][j].justdead&& i == 1 && j == 3) {
			round1[i][j].justdead = false;
			player.setScore(player.getScore() + 100 * round1[i][j].getLevel());
			BO[n].setName(key);
			BO[n++].setpos(round1[i][j].getCHShape().getPosition().x + 60, round1[i][j].getCHShape().getPosition().y + 80);
		}
		else {
			round1[i][j].justdead = false;
			player.setScore(player.getScore() + 100 * round1[i][j].getLevel());

			if (rand() % 10 == 0)
			{
				BO[n].setName(bonus(rand() % 4));
				BO[n++].setpos(round1[i][j].getCHShape().getPosition().x + 60, round1[i][j].getCHShape().getPosition().y + 80);
			}
		}
	}
	 if  (level==3 && round1[i][j].Dead && round1[i][j].justdead&& i == 1 && j == 3 ) {
		round1[i][j].justdead = false;
		BO[n].setName(key);
		BO[n++].setpos(round1[i][j].getCHShape().getPosition().x + 60, round1[i][j].getCHShape().getPosition().y + 80);
	}
	}
	//dropping eggs
	int random = rand() % 1000;
	if (countAliveChickens(round1) <= 5)
		random = rand() % 80;
	if (random == 0)
	{
		int i = rand() % number; int j = rand() % number; if (round1[i][j].Dead == false)
		{
			E.push_back(egg); E.at(E.size() - 1).setSpeedfactor(((rand() % 51) / 100.0) + 1);
			E.at(E.size() - 1).setpos(round1[i][j].getCHShape().getPosition().x + 60, round1[i][j].getCHShape().getPosition().y + 80);
			laid.play();
		}
	}
	//movingchicken
	if (round1[0][0].getCHShape().getPosition().x <= 0){ movesleft = false; }
	else if (round1[0][0].getCHShape().getPosition().x >= 180)movesleft = true;
	for (int i = 0; i < number; i++)
	for (int j = 0; j < number; j++)
	{
		if (movesleft)round1[i][j].setpos(round1[i][j].getCHShape().getPosition().x - 0.05, round1[i][j].getCHShape().getPosition().y);
		else round1[i][j].setpos(round1[i][j].getCHShape().getPosition().x + 0.05, round1[i][j].getCHShape().getPosition().y);
	}
}
void addScore2(string name, int score) {
	scoretaken = true;
	ifstream inp;
	ofstream file;
	char c;
	string k;
	int counter2 = 0;
	int counter = 0;
	inp.open("score.txt");
	if (!inp.fail()) 
	{
		while (!inp.eof())
		{
			inp >> k >> k;
 			if (score >= stoi(k)) { inp.close(); }
			else { counter++; }
		}
	}
	inp.open("score.txt");
	if (!inp.fail()) 
	{
		file.open("temp.txt");
		if (!file.fail()) 
		{
			if (counter2 == counter) { file << name << " " << score << endl; counter = -1; }
			inp.get(c);
			while (!inp.eof())
			{
				
				if (c == '\n')
					counter2++;
				file.put(c);
				if (counter2 == counter) 
				{ file << name << " " << score << endl; counter = -1; }
				inp.get(c);
			}

			inp.close();
			file.flush();
			file.close();
		}
		else cout << "error loading temp.txt";
	}
	else cout << "error loading score.txt";

	inp.open("temp.txt");
	if (!inp.fail()) 
	{
		file.open("score.txt");
		if (!file.fail()) 
		{
			inp.get(c);
			while (!inp.eof())
			{
				file.put(c);
				inp.get(c);
			}
			inp.clear();
			inp.close();
			file.close();
		}
		else cout << "error loading score.txt";
	}
	else cout << "error loading temp.txt";


}
void readscores(sf::RenderWindow& App, vector<sf::Text>& players){
	ifstream file;
	players.clear();
	sf::Text playername;
	playername.setFillColor(sf::Color::White);
	file.open("score.txt");
	if (!file.fail()){
		string name;
		while (!file.eof() && players.size() < 5){
			getline(file, name);
			playername.setString(name);
			players.push_back(playername);
		}file.close();
	}
	else cout << "error loading account.txt";
	playername.setString("--Back--");
	players.push_back(playername);
	for (int i = 0; i < players.size(); i++)
	{
		players[i].setPosition(sf::Vector2f(App.getSize().x / 2 - 30 - players[i].getString().getSize() * 8, 400 + (App.getSize().y - 400) / (players.size() + 1) * i));
	}

}

void beastMovement(Chicken & beast, sf::Clock & timer3){
	if (pos3 && timer3.getElapsedTime().asSeconds() >= 0.3)
	{
		sf::Vector2f np1(0, 100);
		sf::Vector2f direction = beast.normalize(np1 - beast.getCHShape().getPosition());
		beast.setpos(beast.getCHShape().getPosition().x + beast.getSpeedFactorBeast()* direction.x, beast.getCHShape().getPosition().y + beast.getSpeedFactorBeast()* direction.y);
		pos1 = true;
		pos2 = false;
		pos3 = false;
		timer3.restart();
	}
	else if (pos1 && timer3.getElapsedTime().asSeconds() >= 0.3)
	{

		sf::Vector2f np2(600, 50);
		sf::Vector2f direction = beast.normalize(np2 - beast.getCHShape().getPosition());
		beast.setpos(beast.getCHShape().getPosition().x + beast.getSpeedFactorBeast()* direction.x, beast.getCHShape().getPosition().y + beast.getSpeedFactorBeast()*direction.y);
		pos2 = true;
		pos1 = false;
		pos3 = false;
		timer3.restart();
	}
	else if (pos2 && timer3.getElapsedTime().asSeconds() >= 0.3)
	{
		sf::Vector2f np3(300, 100);
		sf::Vector2f direction = beast.normalize(np3 - beast.getCHShape().getPosition());
		beast.setpos(beast.getCHShape().getPosition().x + beast.getSpeedFactorBeast()* direction.x, beast.getCHShape().getPosition().y + beast.getSpeedFactorBeast()* direction.y);
		pos3 = true;
		pos1 = false;
		pos2 = false;
		timer3.restart();

	}

}
void rockWave(Rocks R[], int s, int e){
	if (e<77) {
		int xy = rand() % 2;
		int randx = rand() % 801 + 100;

		for (int i = s; i < e; i++) {
			if (xy == 0)
				R[i].setpos(randx - 910, 0);
			else R[i].setpos(0, randx - 910);
			R[i].getShape().setOrigin(10, 10);
			randx = rand() % 801 + 100;
			xy = rand() % 2;
		}
	}
}
void startWave2(int& cnt, Clock& rocktimer, Clock& wave2){
	cnt = 0;
	rockWave(R, 0, 7);
	rocktimer.restart();
	wave2.restart();
}
void movingRocks(Rocks R[], Clock & rocktimer, int &cnt) {

	R[0].setpos(R[0].getShape().getPosition().x + R[0].getSpeedFactor(), R[0].getShape().getPosition().y + R[0].getSpeedFactor());
	for (int i = 1; i < 5 * cnt + 5; i++) {
		R[i].setpos(R[i].getShape().getPosition().x + R[i].getSpeedFactor(), R[i].getShape().getPosition().y + R[i].getSpeedFactor());
		R[i].getShape().setRotation(R[i].getShape().getRotation() + 30);
	}		if (rocktimer.getElapsedTime().asSeconds() > 1.4) {
		cnt++;
		rockWave(R, 5 * cnt, 5 * cnt + 5);

		rocktimer.restart();

	}
}
void descendingChickensInitial(Chicken a[], Chicken b[], Chicken c[], int size,int level) {
	int randx = rand() % 501;
	int before;
	for (int i = 0; i < size; i++) {

		a[i].setDescending(level);
		a[i].setpos(randx, -110);
		if (i < 9) {
			b[i].setDescending(level);

			before = rand() % 200 + 60;
			b[i].setpos(randx + before + 90, -110);
		}

		if (i < 5) {
			c[i].setDescending(level);
			c[i].setpos(randx + before + 160, -110);
		}
		randx = rand() % 501;
	}
}
void descendingChickensMoving(Chicken &a,int level){
	if (a.getHealthBar() == level+1)
		a.setpos(a.getCHShape().getPosition().x, a.getCHShape().getPosition().y + a.getSpeedFactor());

}
bool descendingChickensAlive(Chicken a[], int s, int e) {
	for (int i = s; i < e; i++) {
		if (a[i].Dead == false)
			return true;
	}
	return false;
}
void dealwithChickens(Chicken a[], Chicken b[], Chicken c[], int i, int ib, int ic,int level) {

	descendingChickensMoving(a[i], level);

	if (i < ib)
		descendingChickensMoving(b[i], level);
	if (i<ic)
		descendingChickensMoving(c[i],level);

	int random = rand() % 3000;
	if (random == 0 && a[i].getCHShape().getPosition().y<600 && a[i].getCHShape().getPosition().y>5) {
		if (!a[i].Dead) {
			E.push_back(egg); E.at(E.size() - 1).setSpeedfactor(((rand() % 51) / 100.0) + 1);
			E.at(E.size() - 1).setpos(a[i].getCHShape().getPosition().x + 30, a[i].getCHShape().getPosition().y + 80);
			random = rand() % 3000;
		}
	}
	random = rand() % 3000;
	if (i < ib) {
		if (random == 0 && b[i].getCHShape().getPosition().y<600 && b[i].getCHShape().getPosition().y>5) {
			if (!b[i].Dead) {
				E.push_back(egg); E.at(E.size() - 1).setSpeedfactor(((rand() % 51) / 100.0) + 1);
				E.at(E.size() - 1).setpos(b[i].getCHShape().getPosition().x + 30, b[i].getCHShape().getPosition().y + 80);
				random = rand() % 3000;
			}
		}
	}

	random = rand() % 3000;
	if (random == 0 && c[i].getCHShape().getPosition().y<600 && c[i].getCHShape().getPosition().y>5) {
		if (i < ic) {
			if (!c[i].Dead) {
				E.push_back(egg); E.at(E.size() - 1).setSpeedfactor(((rand() % 51) / 100.0) + 1);
				E.at(E.size() - 1).setpos(c[i].getCHShape().getPosition().x + 30, c[i].getCHShape().getPosition().y + 80);
				random = rand() % 3000;
			}
		}
	}
}
void hittingChickenDescending(Chicken a[], Chicken b[], Chicken c[], Player &player) {
	for (int i = 0; i < 5; i++) {
		for (int m = 0; m < B.size(); m++) {
			if (a[i].Dead == false && a[i].getCHShape().getGlobalBounds().intersects(B.at(m).getArrow().getGlobalBounds()))
			{
				a[i].minusHealth();
				B.erase(B.begin() + m);
			}
			else	if (b[i].Dead == false && b[i].getCHShape().getGlobalBounds().intersects(B.at(m).getArrow().getGlobalBounds()))
			{
				b[i].minusHealth();
				B.erase(B.begin() + m);
			}

			else	if (c[i].Dead == false && c[i].getCHShape().getGlobalBounds().intersects(B.at(m).getArrow().getGlobalBounds()))
			{
				c[i].minusHealth();
				B.erase(B.begin() + m);
			}
			else if (B.at(m).getArrow().getPosition().y < -2)
				B.erase(B.begin() + m);
		}
	}

	for (int i = 5; i < 9; i++) {
		for (int m = 0; m < B.size(); m++) {
			if (a[i].Dead == false && a[i].getCHShape().getGlobalBounds().intersects(B.at(m).getArrow().getGlobalBounds()))
			{
				a[i].minusHealth();
				B.erase(B.begin() + m);
			}
			else	if (b[i].Dead == false && b[i].getCHShape().getGlobalBounds().intersects(B.at(m).getArrow().getGlobalBounds()))
			{
				b[i].minusHealth();
				B.erase(B.begin() + m);
			}
			else if (B.at(m).getArrow().getPosition().y < -50)
				B.erase(B.begin() + m);
		}
	}

	for (int i = 9; i < 20; i++) {
		for (int m = 0; m < B.size(); m++) {
			if (a[i].Dead == false && a[i].getCHShape().getGlobalBounds().intersects(B.at(m).getArrow().getGlobalBounds()))
			{
				a[i].minusHealth();
				B.erase(B.begin() + m);
			}
			else if (B.at(m).getArrow().getPosition().y < -50)
				B.erase(B.begin() + m);
		}
	}
}
void moveAround(Chicken & a, Player & player) {
	Vector2f direction = a.normalize(player.getShip().getPosition() - a.getCHShape().getPosition());
	if (a.getCHShape().getPosition().y<800)
		a.setpos(a.getCHShape().getPosition().x + a.getSpeedFactor()*direction.x, a.getCHShape().getPosition().y + a.getSpeedFactor()*direction.y);
	else 	a.setpos(a.getCHShape().getPosition().x - a.getSpeedFactor()*direction.x, a.getCHShape().getPosition().y - a.getSpeedFactor()*direction.y);
}
void afterhittingdescending(Chicken a[], Chicken b[], Chicken c[], Player & player,int level) {
	for (int i = 0; i < 20; i++) {
		if (a[i].getHealthBar() <=level &&!player.Dead) {
			//if (level == 3)
				//a[i].setTheme();
			if (!player.hitbyegg)
			moveAround(a[i], player);
		}
		if (i<9)
		if (b[i].getHealthBar() <= level && !player.Dead) {
			//if (level == 3)
				//b[i].setTheme();
			if (!player.hitbyegg)
			moveAround(b[i], player);
		}
		if (i<5)
		if (c[i].getHealthBar() <= level && !player.Dead) {
			//if (level == 3)
			//	c[i].setTheme();
			if (!player.hitbyegg)
			moveAround(c[i], player);
		}
	}
}
void pickupsChickenDescending(Chicken a[], Chicken b[], Chicken c[], Player & player) {
	for (int i = 0; i < 20; i++) {
		if (a[i].Dead && a[i].justdead) {
			a[i].justdead = false;
			player.setScore(player.getScore() + 100 * a[i].getLevel());
			if (rand() % 10 == 0)
			{
				BO[n].setName(bonus(rand() % 4));
				BO[n++].setpos(a[i].getCHShape().getPosition().x + 60, a[i].getCHShape().getPosition().y + 80);
			}
		}

		if (i < 9) {
			if (b[i].Dead && b[i].justdead) {
				b[i].justdead = false;
				player.setScore(player.getScore() + 100 * b[i].getLevel());
				if (rand() % 10 == 0)
				{
					BO[n].setName(bonus(rand() % 4));
					BO[n++].setpos(b[i].getCHShape().getPosition().x + 60, b[i].getCHShape().getPosition().y + 80);
				}
			}
		}

		if (i < 5) {
			if (c[i].Dead && c[i].justdead) {
				c[i].justdead = false;
				player.setScore(player.getScore() + 100 * c[i].getLevel());
				if (rand() % 10 == 0)
				{
					BO[n].setName(bonus(rand() % 4));
					BO[n++].setpos(c[i].getCHShape().getPosition().x + 60, c[i].getCHShape().getPosition().y + 80);
				}
			}
		}
	}
}
void handleChickenDescendingWave(Chicken a[], Chicken b[], Chicken c[], Player &player, Clock &descendingtimer,int level) {
	switch (int(descendingtimer.getElapsedTime().asSeconds())) {
	case 0:
		descendingChickensMoving(a[0], level);
		descendingChickensMoving(b[0], level);
		descendingChickensMoving(c[0], level);
		break;
	case 1:
		for (int i = 0; i < 2; i++)
			dealwithChickens(a, b, c, i, 1, 1,level);
		break;
	case 2:
		for (int i = 0; i < 3; i++)
			dealwithChickens(a, b, c, i, 2, 1, level);
		break;
	case 3:
		for (int i = 0; i < 4; i++)
			dealwithChickens(a, b, c, i, 2, 2, level);
		break;
	case 4:
		for (int i = 0; i < 5; i++)
			dealwithChickens(a, b, c, i, 3, 2, level);
		break;
	case 5:
		for (int i = 0; i < 6; i++)
			dealwithChickens(a, b, c, i, 3, 2, level);
		break;
	case 6:
		for (int i = 0; i < 7; i++)
			dealwithChickens(a, b, c, i, 4, 2, level);
		break;
	case 7:
		for (int i = 0; i < 8; i++)
			dealwithChickens(a, b, c, i, 4, 3, level);
		break;
	case 8:
		for (int i = 0; i < 9; i++)
			dealwithChickens(a, b, c, i, 4, 3, level);
		break;
	case 9:
		for (int i = 0; i < 10; i++)
			dealwithChickens(a, b, c, i, 4, 3, level);
		break;

	case 10:
		for (int i = 0; i < 11; i++)
			dealwithChickens(a, b, c, i, 5, 3, level);
		break;
	case 11:
		for (int i = 0; i < 12; i++)
			dealwithChickens(a, b, c, i, 5, 4, level);
		break;
	case 12:
		for (int i = 0; i < 13; i++)
			dealwithChickens(a, b, c, i, 5, 4,level);
		break;
	case 13:
		for (int i = 0; i < 14; i++)
			dealwithChickens(a, b, c, i, 5, 4, level);
		break;
	case 14:
		for (int i = 0; i < 15; i++)
			dealwithChickens(a, b, c, i, 6, 4, level);
		break;
	case 15:
		for (int i = 0; i < 16; i++)
			dealwithChickens(a, b, c, i, 6, 5, level);
		break;
	case 16:
		for (int i = 0; i < 17; i++)
			dealwithChickens(a, b, c, i, 7, 5, level);
		break;
	case 17:
		for (int i = 0; i < 18; i++)
			dealwithChickens(a, b, c, i, 7, 5, level);
		break;
	case 18:
		for (int i = 0; i < 19; i++)
			dealwithChickens(a, b, c, i, 8, 5, level);
		break;
	default:
		for (int i = 0; i < 20; i++)
			dealwithChickens(a, b, c, i, 9, 5, level);
		break;

	}
	hittingChickenDescending(a, b, c, player);
	afterhittingdescending(a, b, c, player,level);
	pickupsChickenDescending(a, b, c, player);
}

void handleStore(Player &player) {
	RenderWindow Rocket(sf::VideoMode(800, 650, 32), "Choose Rocket");
	Sprite rocket1;
	Sprite rocket2;
	Sprite rocket4;
	Sprite rocket5;
	Sprite rocket6;
	Text text;
	Text text2, text4, text5, text6;
	Font font;
	font.loadFromFile("futureforcescondital.ttf");
	text.setString("Rocket Store");
	text.setScale(1.5, 1.5);
	text.setFillColor(sf::Color::Cyan);
	text.setCharacterSize(80);
	text.setPosition(30, 0);
	text.setFont(font);
	text2.setFont(font); text2.setFillColor(Color::White); text2.setPosition(150, 250); text2.setString("Lives = 4"); text2.setCharacterSize(40);
	text4.setFont(font); text4.setFillColor(Color::White); text4.setPosition(150, 500); text4.setString("Lives = 5"); text4.setCharacterSize(40);
	text5.setFont(font); text5.setFillColor(Color::White); text5.setPosition(520, 250); text5.setString("Lives = 6"); text5.setCharacterSize(40);
	text6.setFont(font); text6.setFillColor(Color::White); text6.setPosition(520, 500); text6.setString("Lives = 7"); text6.setCharacterSize(40);

	Texture R1;
	R1.loadFromFile("earth.jpg");
	rocket1.setTexture(R1);
	rocket1.setScale(1.3, 1.3);

	Texture* R2;
	R2 = new sf::Texture();
	R2->loadFromFile("rocket2.png");
	rocket2.setTexture(*R2);
	rocket2.setScale(0.3, 0.3);
	rocket2.setPosition(70, 250);

	Texture* R4;
	R4 = new sf::Texture();
	R4->loadFromFile("rocket4.png");
	rocket4.setTexture(*R4);
	rocket4.setScale(0.25, 0.25);
	rocket4.setPosition(70, 500);

	Texture* R5;
	R5 = new sf::Texture();
	R5->loadFromFile("rocket5 (1).png");
	rocket5.setTexture(*R5);
	rocket5.setScale(0.4, 0.4);
	rocket5.setPosition(400, 250);

	Texture* R6;
	R6 = new sf::Texture();
	R6->loadFromFile("rocket6.png");
	rocket6.setTexture(*R6);
	rocket6.setScale(1.1, 1.1);
	rocket6.setPosition(400, 500);

	Event event;

	while (Rocket.isOpen()) {
		while (Rocket.pollEvent(event))
		{
			if (event.type == Event::Closed)
				Rocket.close();
		}

		if (Mouse::isButtonPressed(Mouse::Left)) {

			if (rocket2.getGlobalBounds().contains(Rocket.mapPixelToCoords(Mouse::getPosition(Rocket))))
			{
				player.setShip(R2,2);
				player.setLifes(4);
				//std::cout << "rocket2";
			}

			else if (rocket4.getGlobalBounds().contains(Rocket.mapPixelToCoords(Mouse::getPosition(Rocket))))
			{
				player.setShip(R4,4);
				player.setLifes(5);
				//std::cout << "rocket4";
			}
			else if (rocket5.getGlobalBounds().contains(Rocket.mapPixelToCoords(Mouse::getPosition(Rocket))))
			{
				player.setShip(R5,5);
				player.setLifes(6);
				//std::cout << "rocket5";
			}
			else if (rocket6.getGlobalBounds().contains(Rocket.mapPixelToCoords(Mouse::getPosition(Rocket))))
			{
				player.setShip(R6,6);
				player.setLifes(7);
				//std::cout << "rocket6";
			}
		}
		Rocket.clear();

		Rocket.draw(rocket1);
		Rocket.draw(rocket2);
		Rocket.draw(rocket4);
		Rocket.draw(rocket5);
		Rocket.draw(rocket6);

		Rocket.draw(text);Rocket.draw(text2);Rocket.draw(text4);Rocket.draw(text5);Rocket.draw(text6);

		Rocket.display();
	}