MisterEpic

Paddle.cpp

Apr 6th, 2012
347
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.21 KB | None | 0 0
  1. #include "Paddle.h"
  2. #include "HumanPaddle.h"
  3. #include "ComputerPaddle.h"
  4. #include "Ball.h"
  5.  
  6. #include <SFML/Graphics.hpp>
  7. #include <SFML/Audio.hpp>
  8.  
  9. using namespace sf;
  10.  
  11. Paddle::Paddle(RenderWindow *App, int playerID) : App(App), speed(400.f), playerID(playerID)
  12. {
  13.     Image PaddleImage;
  14.     PaddleImage.LoadFromFile("datas/pong/paddle.png");
  15.     sprite.SetImage(PaddleImage);
  16.  
  17.     switch (playerID)
  18.     {
  19.         case 1: sprite.Move(10, (App->GetView().GetRect().GetHeight() - sprite.GetSize().y) / 2); break;
  20.         case 2: sprite.Move(App->GetView().GetRect().GetWidth() - sprite.GetSize().x - 10, (App->GetView().GetRect().GetHeight() - sprite.GetSize().y) / 2); break;
  21.     }
  22.  
  23. }
  24.  
  25. Sprite Paddle::getSprite()
  26. {
  27.     return this->sprite;
  28. }
  29.  
  30. Sprite *Paddle::getSpriteP()
  31. {
  32.     return &(this->sprite);
  33. }
  34.  
  35. void HumanPaddle::refresh()
  36. {
  37.     if (playerID == 1)
  38.     {
  39.         if (App->GetInput().IsKeyDown(Key::W) && (sprite.GetPosition().y > 5.f))
  40.             sprite.Move(0.f, -speed * App->GetFrameTime());
  41.         if (App->GetInput().IsKeyDown(Key::S) && (sprite.GetPosition().y < App->GetView().GetRect().GetHeight() - sprite.GetSize().y - 5.f))
  42.             sprite.Move(0.f, speed * App->GetFrameTime());
  43.     }
  44.     else
  45.     {
  46.         if (App->GetInput().IsKeyDown(Key::Up) && (sprite.GetPosition().y > 5.f))
  47.             sprite.Move(0.f, -speed * App->GetFrameTime());
  48.         if (App->GetInput().IsKeyDown(Key::Down) && (sprite.GetPosition().y < App->GetView().GetRect().GetHeight() - sprite.GetSize().y - 5.f))
  49.             sprite.Move(0.f, speed * App->GetFrameTime());
  50.     }
  51. }
  52.  
  53. void ComputerPaddle::refresh()
  54. {
  55.     if (((speed < 0.f) && (sprite.GetPosition().y > 5.f)) ||
  56.         ((speed > 0.f) && (sprite.GetPosition().y < App->GetView().GetRect().GetHeight() - sprite.GetSize().y - 5.f)))
  57.     {
  58.         sprite.Move(0.f, speed * App->GetFrameTime());
  59.     }
  60.  
  61.     if (AITimer.GetElapsedTime() > AITime)
  62.     {
  63.         AITimer.Reset();
  64.         if ((speed < 0) && (ball->getSprite().GetPosition().y + ball->getSprite().GetSize().y > sprite.GetPosition().y + sprite.GetSize().y))
  65.             speed = -speed;
  66.         if ((speed > 0) && (ball->getSprite().GetPosition().y < sprite.GetPosition().y))
  67.             speed = -speed;
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment