Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ==============================================.HPP FILE===========================================================
- #pragma once
- //C++ Headers
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <ctime>
- #include <cstdlib>
- #include <vector>
- #include <cmath>
- #include <algorithm>
- //Library Headers
- #include <SFML\Graphics.hpp>
- #include <SFML\Window.hpp>
- #include <SFML\Audio.hpp>
- #include <SFML\Network.hpp>
- #include <SFML\System.hpp>
- const int Width = 800;
- const int Height = 600;
- using namespace std;
- ============================================.CPP FILE=============================================================
- //Class Headers
- #include "Globals.hpp"
- bool Collided(const sf::Shape & s1, const sf::Shape & s2);
- void ResetBall(sf::CircleShape & s1, float & a, float & b, sf::Vector2f & Pos);
- void ChangeBallDir(sf::CircleShape & s1, const float & speed, float& dirX, float & dirY);
- void EnemyAi(sf::RectangleShape & r1, sf::CircleShape c1, float & a, const float & speed, int & difficulty);
- void PlayerMovement(sf::Shape &PlayerShape);
- void StringChange(sf::Text & t1, int & a);
- void StringChangeDif(sf::Text & t1, int & a);
- void DrawText(sf::Font &Font, sf::Text &text, int &Size, sf::Vector2f &Pos, const sf::Color &Color, sf::String &str, sf::RenderWindow &rw);
- void Reset(sf::Shape & s1, sf::Shape & s2, sf::Shape & s3, sf::Vector2f & v1, sf::Vector2f & v2, sf::Vector2f & v3, int & x, int & y);
- void Save();
- //Start of main
- int main()
- {
- //Window Objects
- sf::RenderWindow Window(sf::VideoMode(Width, Height), "SFML Window");
- Window.setKeyRepeatEnabled(false);
- Window.setFramerateLimit(60);
- //Init
- //Misc things
- enum State{MainMenu, Options, Playing, Paused, EndScreen, Quit};
- sf::Font Font; if(!Font.loadFromFile("arial.ttf")) cout << "Could not load font from file!\n";
- int f = 32;
- int MaxScore = 10;
- sf::Text ModifiableText;
- //Game "Board" Init
- sf::RectangleShape BoardMid;
- BoardMid.setSize(sf::Vector2f(20, 600));
- BoardMid.setFillColor(sf::Color(220,220,220,255));
- BoardMid.setPosition(Width/2, 0);
- sf::CircleShape BoardCircle;
- BoardCircle.setRadius(180);
- BoardCircle.setFillColor(sf::Color::Transparent);
- BoardCircle.setOutlineColor(sf::Color(220,220,220,255));
- BoardCircle.setOutlineThickness(12);
- BoardCircle.setPosition(225, 130);
- //Rand
- srand(time(NULL));
- //Player Init
- sf::Text pText;
- pText.setFont(Font);
- pText.setCharacterSize(32);
- pText.setColor(sf::Color::Blue);
- pText.setPosition(Width/2 - 20, 20);
- sf::RectangleShape PlayerShape;
- sf::Vector2f Pos;
- PlayerShape.setFillColor(sf::Color::Blue);
- PlayerShape.setPosition(Pos.x = 10, Pos.y = Height/2 - 64);
- PlayerShape.setSize(sf::Vector2f(32, 128));
- int PlayerScore = 0;
- //Enemy Init
- sf::Text eText;
- eText.setFont(Font);
- eText.setCharacterSize(32);
- eText.setColor(sf::Color::Red);
- eText.setPosition(Width/2 + 20, 20);
- sf::RectangleShape EnemyShape;
- sf::Vector2f ePos;
- EnemyShape.setFillColor(sf::Color::Red);
- EnemyShape.setPosition(ePos.x = Width - 42, ePos.y = Height/2 - 64);
- EnemyShape.setSize(sf::Vector2f(32, 128));
- float eDirX = 0, eDirY = 1;
- int EnemyScore = 0;
- //Ball Init
- sf::CircleShape Ball;
- sf::Vector2f bPos;
- Ball.setFillColor(sf::Color::Green);
- Ball.setPosition(bPos.x = Width/2, bPos.y = Height/2);
- Ball.setRadius(16);
- float dirX = -1, dirY = 0;
- const float speed = 5;
- float k = 0.5f;
- //End of Init
- enum Difficulty {Cake, Easy, Medium, Hard, Impossible};
- State state = MainMenu;
- int difficulty = Easy;
- int MaxScoreChange = 1;
- while (Window.isOpen())
- {
- while(state == MainMenu)
- {
- sf::Vector2i MousePosition = sf::Mouse::getPosition(Window);
- sf::Text Text;
- sf::Text Text2;
- DrawText(Font, Text, f, sf::Vector2f(Width/2 - Text.getCharacterSize() * Text.getScale().x, Height/2 - Text.getCharacterSize() * Text.getScale().y),
- sf::Color::White, sf::String("Play!"), Window);
- DrawText(Font, Text2, f, sf::Vector2f(Width/2 - Text2.getCharacterSize() * Text2.getScale().x, Height/2 - Text2.getCharacterSize() * Text2.getScale().y + Text.getGlobalBounds().height + 20),
- sf::Color::White, sf::String("Options!"), Window);
- //cout << Text.getPosition().x << " " << Text.getPosition().y << endl;
- sf::Event Event;
- while(Window.pollEvent(Event))
- {
- switch(Event.type)
- {
- case sf::Event::Closed:
- Window.close();
- break;
- case sf::Event::KeyPressed:
- if(sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
- state = Quit;
- break;
- }//end of switch Event.type
- }//end of window.pollEvent
- //start of mouse bounds checking
- if(MousePosition.x >= Text.getPosition().x - 10 && MousePosition.x <= Text.getPosition().x + Text.getGlobalBounds().width + 10 && //x
- MousePosition.y >= Text.getPosition().y - 10 && MousePosition.y <= Text.getPosition().y + Text.getGlobalBounds().height + 5) //y
- {
- Text.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- state = Playing;
- }//end of if mouse button is pressed
- }//end of mouse bounds checking
- //start of mouse bounds checking
- if(MousePosition.x >= Text2.getPosition().x - 10 && MousePosition.x <= Text2.getPosition().x + Text2.getGlobalBounds().width + 10 && //x
- MousePosition.y >= Text2.getPosition().y - 10 && MousePosition.y <= Text2.getPosition().y + Text2.getGlobalBounds().height + 10) //y
- {
- Text2.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- state = Options;
- }//end of if mouse button is pressed
- }//end of mouse bounds checking
- Window.clear();
- Window.draw(Text);
- Window.draw(Text2);
- Window.display();
- }
- //end of While state == MainMenu
- while(state == Options)
- {
- sf::Vector2i MousePosition = sf::Mouse::getPosition(Window);
- sf::Text OT1;
- sf::Text t1, t2, t3, t4;
- t2.setFont(Font);
- t2.setCharacterSize(32);
- t2.setPosition(sf::Vector2f(Width/2 + 160, Height - 100));
- t2.setColor(sf::Color::White);
- t4.setFont(Font);
- t4.setCharacterSize(32);
- t4.setPosition(sf::Vector2f(Width/2 + 140, Height - 150));
- t4.setColor(sf::Color::White);
- DrawText(Font, OT1, f, sf::Vector2f(Width/2, Height - 50), sf::Color::White, sf::String("Back"), Window);
- DrawText(Font, t1, f, sf::Vector2f(Width/2, Height - 100), sf::Color::White, sf::String("Max Score: "), Window);
- DrawText(Font, t3, f, sf::Vector2f(Width/2, Height - 150), sf::Color::White, sf::String("Difficulty: "), Window);
- sf::Event Event;
- while(Window.pollEvent(Event))
- {
- switch(Event.type)
- {
- case sf::Event::Closed:
- Window.close();
- break;
- case sf::Event::KeyPressed:
- if(sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
- state = Paused;
- break;
- }//end of switch Event.type
- }//end of window.pollEvent
- //start of mouse bounds checking
- if(MousePosition.x >= OT1.getPosition().x - 10 && MousePosition.x <= OT1.getPosition().x + OT1.getGlobalBounds().width + 10 && //x
- MousePosition.y >= OT1.getPosition().y - 10 && MousePosition.y <= OT1.getPosition().y + OT1.getGlobalBounds().height + 10) //y
- {
- OT1.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- state = MainMenu;
- }//end of if mouse button is pressed
- }
- if(MousePosition.x >= t1.getPosition().x - 10 && MousePosition.x <= t1.getPosition().x + t1.getGlobalBounds().width + 10 && //x
- MousePosition.y >= t1.getPosition().y - 10 && MousePosition.y <= t1.getPosition().y + t1.getGlobalBounds().height + 20) //y
- {
- t1.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- if(MaxScoreChange != 20)
- MaxScoreChange++;
- StringChange(t2, MaxScoreChange);
- MaxScore = MaxScoreChange;
- }//end of if mouse button is pressed
- if(sf::Mouse::isButtonPressed(sf::Mouse::Right))
- {
- if(MaxScoreChange != 1)
- MaxScoreChange--;
- StringChange(t2, MaxScoreChange);
- MaxScore = MaxScoreChange;
- }//end of if mouse button is pressed
- }
- if(MousePosition.x >= t3.getPosition().x - 10 && MousePosition.x <= t3.getPosition().x + t3.getGlobalBounds().width + 10 && //x
- MousePosition.y >= t3.getPosition().y - 10 && MousePosition.y <= t3.getPosition().y + t3.getGlobalBounds().height + 10) //y
- {
- t3.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- if(difficulty != 4)
- ++difficulty;
- }//end of if mouse button is pressed
- if(sf::Mouse::isButtonPressed(sf::Mouse::Right))
- {
- if(difficulty != 0)
- --difficulty;
- }//end of if mouse button is pressed
- }//end of mouse bounds checking
- StringChange(t2, MaxScoreChange);
- StringChangeDif(t4, difficulty);
- Window.clear();
- Window.draw(OT1);
- Window.draw(t1);
- Window.draw(t2);
- Window.draw(t3);
- Window.draw(t4);
- Window.display();
- }
- //End of while state == Options
- while(state == Playing)
- {
- sf::Event Event;
- while(Window.pollEvent(Event))
- {
- switch(Event.type)
- {
- case sf::Event::Closed:
- Window.close();
- break;
- case sf::Event::KeyPressed:
- if(sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
- state = Paused;
- else if(sf::Keyboard::isKeyPressed(sf::Keyboard::K))
- ResetBall(Ball, dirX, dirY, bPos);
- break;
- }//end of switch Event.type
- }//end of window.pollEvent
- //Update
- PlayerMovement(PlayerShape);
- EnemyAi(EnemyShape, Ball, eDirY, speed, difficulty);
- Ball.move(dirX, dirY);
- //Keeping Images in bounds
- if(PlayerShape.getPosition().y <= 0)
- PlayerShape.setPosition(10, 0);
- if(PlayerShape.getPosition().y >= Height - PlayerShape.getSize().y)
- PlayerShape.setPosition(10, Height - PlayerShape.getSize().y);
- if(EnemyShape.getPosition().y <= 0)
- EnemyShape.setPosition(Width - 42, 0);
- if(EnemyShape.getPosition().y >= Height - EnemyShape.getSize().y)
- EnemyShape.setPosition(Width - 42, Height - EnemyShape.getSize().y);
- if(Ball.getPosition().y <= 0)
- dirY = -dirY;
- if(Ball.getPosition().y >= Height - 32)
- dirY = -dirY;
- //Collision Detection
- if(Collided(PlayerShape, Ball))
- {
- dirX = -dirX;
- //dirY = -dirY - (float)rand()/(float)RAND_MAX;
- //dirX = cos(PlayerShape.getPosition().x) * speed + k * PlayerShape.getPosition().x;
- //dirX = sin(PlayerShape.getPosition().x) * 2;
- //dirX = atan2(PlayerShape.getPosition().y, PlayerShape.getPosition().x) * 3;
- dirY = cos(PlayerShape.getPosition().y);
- //dirY = sin(PlayerShape.getPosition().y);
- //dirY = atan2(PlayerShape.getPosition().x, PlayerShape.getPosition().y);
- }
- else if(Collided(EnemyShape, Ball))
- {
- dirX = -dirX;
- //dirY = -dirY - (float)rand()/(float)RAND_MAX;
- //dirX = cos(-EnemyShape.getPosition().x);
- //dirX = -cos(EnemyShape.getPosition().x) * 10;
- //dirX = -sin(EnemyShape.getPosition().x) * 10;
- //dirX = -atan2(EnemyShape.getPosition().y, EnemyShape.getPosition().x) * 10;
- dirY = -cos(-EnemyShape.getPosition().y);
- //dirY = -sin(EnemyShape.getPosition().y);
- //dirY = -atan2(EnemyShape.getPosition().y, EnemyShape.getPosition().x); // doesnt work well
- }
- //Update
- StringChange(pText, PlayerScore);
- StringChange(eText, EnemyScore);
- EnemyAi(EnemyShape, Ball, eDirY, speed, difficulty);
- //Points
- if(Ball.getPosition().x < 0 - 32)
- {
- EnemyScore++;
- ResetBall(Ball, dirX, dirY, bPos);
- ChangeBallDir(Ball, speed, dirX, dirY);
- dirX = -dirX + 0.2f;
- dirY = -dirY + 0.2f;
- }
- else if(Ball.getPosition().x > Width)
- {
- PlayerScore++;
- ResetBall(Ball, dirX, dirY, bPos);
- ChangeBallDir(Ball, speed, dirX, dirY);
- dirX = -dirX + 0.2f;
- dirY = -dirY + 0.2f;
- }
- Ball.move(dirX * speed, dirY * speed);
- if(PlayerScore >= MaxScore)
- state = EndScreen;
- if(EnemyScore >= MaxScore)
- state = EndScreen;
- Window.clear();
- Window.draw(pText);
- Window.draw(eText);
- Window.draw(BoardCircle);
- Window.draw(BoardMid);
- Window.draw(PlayerShape);
- Window.draw(EnemyShape);
- Window.draw(Ball);
- Window.display();
- }
- //end of while state == Playing
- while(state == Paused)
- {
- sf::Text ModifiableText;
- sf::Text ModifiableText2;
- sf::Text ModifiableText3;
- DrawText(Font, ModifiableText, f, sf::Vector2f(Width/2, Height/2 - 100), sf::Color::White, sf::String("Resume"), Window);
- DrawText(Font, ModifiableText2, f, sf::Vector2f(Width/2, Height/2 - 50), sf::Color::White, sf::String("Options"), Window);
- DrawText(Font, ModifiableText3, f, sf::Vector2f(Width/2, Height/2), sf::Color::White, sf::String("Quit"), Window);
- sf::Event Event;
- while(Window.pollEvent(Event))
- {
- switch(Event.type)
- {
- case sf::Event::Closed:
- Window.close();
- break;
- case sf::Event::KeyPressed:
- if(sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
- state = Playing;
- }//end of switch Event.type
- }//end of window.pollEvent
- sf::Vector2i MousePosition = sf::Mouse::getPosition(Window);
- //start of mouse bounds checking
- if(MousePosition.x >= ModifiableText.getPosition().x - 10 && MousePosition.x <= ModifiableText.getPosition().x + ModifiableText.getGlobalBounds().width + 10 && //x
- MousePosition.y >= ModifiableText.getPosition().y - 10 && MousePosition.y <= ModifiableText.getPosition().y + ModifiableText.getGlobalBounds().height + 10) //y
- {
- ModifiableText.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- state = Playing;
- }//end of if mouse button is pressed
- }//end of mouse bounds checking
- //start of mouse bounds checking
- if(MousePosition.x >= ModifiableText2.getPosition().x - 10 && MousePosition.x <= ModifiableText2.getPosition().x + ModifiableText2.getGlobalBounds().width + 10 && //x
- MousePosition.y >= ModifiableText2.getPosition().y - 10 && MousePosition.y <= ModifiableText2.getPosition().y + ModifiableText2.getGlobalBounds().height + 10) //y
- {
- ModifiableText2.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- state = Options;
- }//end of if mouse button is pressed
- }//end of mouse bounds checking
- if(MousePosition.x >= ModifiableText3.getPosition().x - 10 && MousePosition.x <= ModifiableText3.getPosition().x + ModifiableText3.getGlobalBounds().width + 10 && //x
- MousePosition.y >= ModifiableText3.getPosition().y - 10 && MousePosition.y <= ModifiableText3.getPosition().y + ModifiableText3.getGlobalBounds().height + 10) //y
- {
- ModifiableText3.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- state = Quit;
- }//end of if mouse button is pressed
- }//end of mouse bounds checking
- Window.clear();
- Window.draw(ModifiableText);
- Window.draw(ModifiableText2);
- Window.draw(ModifiableText3);
- Window.display();
- }
- //end of while state == Paused
- while (state == EndScreen)
- {
- sf::Vector2i MousePosition = sf::Mouse::getPosition(Window);
- sf::Text t1, t2, Restart, Exit;
- if(PlayerScore >= MaxScore)
- DrawText(Font, t1, f, sf::Vector2f(100, Height/2), sf::Color::Green, sf::String("PLAYER WINS!"), Window);
- if(EnemyScore >= MaxScore)
- DrawText(Font, t2, f, sf::Vector2f(100, Height/2), sf::Color::Red, sf::String("ENEMY WINS!"), Window);
- DrawText(Font, Restart, f, sf::Vector2f(50, Height-100), sf::Color::White, sf::String("Play Again?"), Window);
- DrawText(Font, Exit, f, sf::Vector2f(700, Height-100), sf::Color::White, sf::String("Quit!"), Window);
- //start of mouse bounds checking
- if(MousePosition.x >= Restart.getPosition().x - 10 && MousePosition.x <= Restart.getPosition().x + Restart.getGlobalBounds().width + 10 && //x
- MousePosition.y >= Restart.getPosition().y - 10 && MousePosition.y <= Restart.getPosition().y + Restart.getGlobalBounds().height + 20) //y
- {
- Restart.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- Reset(PlayerShape, EnemyShape, Ball, Pos, ePos, bPos, PlayerScore, EnemyScore);
- state = MainMenu;
- }//end of if mouse button is pressed
- }//end of mouse bounds checking
- if(MousePosition.x >= Exit.getPosition().x - 10 && MousePosition.x <= Exit.getPosition().x + Exit.getGlobalBounds().width + 10 && //x
- MousePosition.y >= Exit.getPosition().y - 10 && MousePosition.y <= Exit.getPosition().y + Exit.getGlobalBounds().height + 20) //y
- {
- Exit.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- state = Quit;
- }//end of if mouse button is pressed
- }//end of mouse bounds checking
- Window.clear();
- Window.draw(t1);
- Window.draw(t2);
- Window.draw(Restart);
- Window.draw(Exit);
- Window.display();
- }
- //end of while state == EndScreen
- while (state == Quit)
- {
- sf::Text EndText;
- sf::Text Yes;
- sf::Text No;
- DrawText(Font, EndText, f, sf::Vector2f(Width/2 - 100, Height/2 - 50), sf::Color::White, sf::String("Are you sure you want to quit?!"), Window);
- DrawText(Font, Yes, f, sf::Vector2f(Width/2 - 100, Height/2), sf::Color::White, sf::String("Yes"), Window);
- DrawText(Font, No, f, sf::Vector2f(Width/2, Height/2), sf::Color::White, sf::String("No"), Window);
- sf::Event Event;
- while(Window.pollEvent(Event))
- {
- switch(Event.type)
- {
- case sf::Event::Closed:
- Window.close();
- break;
- case sf::Event::KeyPressed:
- if(sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
- Window.close();
- break;
- }//end of switch Event.type
- }//end of window.pollEvent
- //Update
- sf::Vector2i MousePosition = sf::Mouse::getPosition(Window);
- //Start of mouse bounds checking
- if(MousePosition.x >= Yes.getPosition().x - 10 && MousePosition.x <= Yes.getPosition().x + Yes.getGlobalBounds().width + 10 && //x
- MousePosition.y >= Yes.getPosition().y - 10 && MousePosition.y <= Yes.getPosition().y + Yes.getGlobalBounds().height + 20) //y
- {
- Yes.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- Window.close();
- }//end of if mouse button is pressed
- }
- if(MousePosition.x >= No.getPosition().x - 10 && MousePosition.x <= No.getPosition().x + No.getGlobalBounds().width + 10 && //x
- MousePosition.y >= No.getPosition().y - 10 && MousePosition.y <= No.getPosition().y + No.getGlobalBounds().height + 20) //y
- {
- No.setColor(sf::Color::Red);
- if(sf::Mouse::isButtonPressed(sf::Mouse::Left))
- {
- state = Paused;
- }//end of if mouse button is pressed
- }//end of mouse bounds checking
- Window.clear();
- Window.draw(EndText);
- Window.draw(Yes);
- Window.draw(No);
- Window.display();
- }
- //end of state == Quit
- }//end of while Window.isOpen()
- return 0;
- }//End of main
- //Methods/Functions
- void PlayerMovement(sf::Shape &PlayerShape)
- {
- if(sf::Keyboard::isKeyPressed(sf::Keyboard::W) || sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
- {
- PlayerShape.move(0, -5);
- }
- else if(sf::Keyboard::isKeyPressed(sf::Keyboard::S) || sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
- {
- PlayerShape.move(0, 5);
- }
- }
- bool Collided(const sf::Shape & s1, const sf::Shape & s2)
- {
- sf::FloatRect r1 = s1.getGlobalBounds();
- sf::FloatRect r2 = s2.getGlobalBounds();
- return r1.intersects(r2);
- }
- void ResetBall(sf::CircleShape & s1, float & a, float & b, sf::Vector2f & Pos)
- {
- s1.setPosition(Pos);
- a = 1, b = 1;
- }
- void ChangeBallDir(sf::CircleShape & s1, const float & speed, float & dirX, float & dirY)
- {
- dirX = -dirX;
- dirY = -dirY;
- //s1.move(dirX * speed, dirY * speed);
- }
- void StringChange(sf::Text & t1, int & a)
- {
- switch(a)
- {
- case 0:
- t1.setString("0");
- break;
- case 1:
- t1.setString("1");
- break;
- case 2:
- t1.setString("2");
- break;
- case 3:
- t1.setString("3");
- break;
- case 4:
- t1.setString("4");
- break;
- case 5:
- t1.setString("5");
- break;
- case 6:
- t1.setString("6");
- break;
- case 7:
- t1.setString("7");
- break;
- case 8:
- t1.setString("8");
- break;
- case 9:
- t1.setString("9");
- break;
- case 10:
- t1.setString("10");
- break;
- case 11:
- t1.setString("11");
- break;
- case 12:
- t1.setString("12");
- break;
- case 13:
- t1.setString("13");
- break;
- case 14:
- t1.setString("14");
- break;
- case 15:
- t1.setString("15");
- break;
- case 16:
- t1.setString("16");
- break;
- case 17:
- t1.setString("17");
- break;
- case 18:
- t1.setString("18");
- break;
- case 19:
- t1.setString("19");
- break;
- case 20:
- t1.setString("20");
- break;
- }//end of switch
- }//end of void SwitchString
- void StringChangeDif(sf::Text & t1, int & a)
- {
- switch(a)
- {
- case 0:
- t1.setString("Cake");
- break;
- case 1:
- t1.setString("Easy");
- break;
- case 2:
- t1.setString("Medium");
- break;
- case 3:
- t1.setString("Hard");
- break;
- case 4:
- t1.setString("Impossible");
- break;
- }
- }
- void EnemyAi(sf::RectangleShape & r1, sf::CircleShape c1, float & a, const float & speed, int & difficulty)
- {
- if(difficulty == 0)
- {
- a = 0.2f;
- }
- else if(difficulty == 1)
- {
- a = 0.4f;
- }
- else if(difficulty == 2)
- {
- a = 0.5f;
- }
- else if(difficulty == 3)
- {
- a = 0.6f;
- }
- else if(difficulty == 3)
- {
- a = 1.0f;
- }
- if(c1.getPosition().y < r1.getPosition().y)
- {
- r1.move(0, -a * speed);
- }
- else if(c1.getPosition().y > r1.getPosition().y)
- {
- r1.move(0, a * speed);
- }
- //so if the ball goes lower than the enemy can the enemy wont be all buggy and weird about moving in and out of the bounds its allowed
- else if(c1.getPosition().y > Height - 96)
- {
- r1.move(0,-1);
- }
- }
- void DrawText(sf::Font &Font, sf::Text &text, int &Size, sf::Vector2f &Pos, const sf::Color &Color, sf::String &str, sf::RenderWindow &rw)
- {
- text.setFont(Font);
- text.setCharacterSize(Size);
- text.setPosition(Pos.x, Pos.y);
- text.setColor(Color);
- text.setString(str);
- rw.draw(text);
- }
- void Reset(sf::Shape & s1, sf::Shape & s2, sf::Shape & s3, sf::Vector2f & v1, sf::Vector2f & v2, sf::Vector2f & v3, int & x, int & y)
- {
- s1.setPosition(v1);
- s2.setPosition(v2);
- s3.setPosition(v3);
- x = 0;
- y = 0;
- }
- void Save()
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement