Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Paddle.h"
- #include "HumanPaddle.h"
- #include "ComputerPaddle.h"
- #include "Ball.h"
- #include <SFML/Graphics.hpp>
- #include <SFML/Audio.hpp>
- using namespace sf;
- Paddle::Paddle(RenderWindow *App, int playerID) : App(App), speed(400.f), playerID(playerID)
- {
- Image PaddleImage;
- PaddleImage.LoadFromFile("datas/pong/paddle.png");
- sprite.SetImage(PaddleImage);
- switch (playerID)
- {
- case 1: sprite.Move(10, (App->GetView().GetRect().GetHeight() - sprite.GetSize().y) / 2); break;
- case 2: sprite.Move(App->GetView().GetRect().GetWidth() - sprite.GetSize().x - 10, (App->GetView().GetRect().GetHeight() - sprite.GetSize().y) / 2); break;
- }
- }
- Sprite Paddle::getSprite()
- {
- return this->sprite;
- }
- Sprite *Paddle::getSpriteP()
- {
- return &(this->sprite);
- }
- void HumanPaddle::refresh()
- {
- if (playerID == 1)
- {
- if (App->GetInput().IsKeyDown(Key::W) && (sprite.GetPosition().y > 5.f))
- sprite.Move(0.f, -speed * App->GetFrameTime());
- if (App->GetInput().IsKeyDown(Key::S) && (sprite.GetPosition().y < App->GetView().GetRect().GetHeight() - sprite.GetSize().y - 5.f))
- sprite.Move(0.f, speed * App->GetFrameTime());
- }
- else
- {
- if (App->GetInput().IsKeyDown(Key::Up) && (sprite.GetPosition().y > 5.f))
- sprite.Move(0.f, -speed * App->GetFrameTime());
- if (App->GetInput().IsKeyDown(Key::Down) && (sprite.GetPosition().y < App->GetView().GetRect().GetHeight() - sprite.GetSize().y - 5.f))
- sprite.Move(0.f, speed * App->GetFrameTime());
- }
- }
- void ComputerPaddle::refresh()
- {
- if (((speed < 0.f) && (sprite.GetPosition().y > 5.f)) ||
- ((speed > 0.f) && (sprite.GetPosition().y < App->GetView().GetRect().GetHeight() - sprite.GetSize().y - 5.f)))
- {
- sprite.Move(0.f, speed * App->GetFrameTime());
- }
- if (AITimer.GetElapsedTime() > AITime)
- {
- AITimer.Reset();
- if ((speed < 0) && (ball->getSprite().GetPosition().y + ball->getSprite().GetSize().y > sprite.GetPosition().y + sprite.GetSize().y))
- speed = -speed;
- if ((speed > 0) && (ball->getSprite().GetPosition().y < sprite.GetPosition().y))
- speed = -speed;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment