Advertisement
Guest User

enemy.h

a guest
Apr 24th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. #pragma once
  2.  
  3. #include "game.h"
  4. #include "entity.h"
  5.  
  6. class Enemy : public sf::RectangleShape, public Entity {
  7. public:
  8.     Enemy(const sf::Vector2f &size = sf::Vector2f(0, 0)) : RectangleShape(size), Entity("", 100.0f, 10.0f, 5.0f)
  9.     {
  10.         std::cout << "Inside constructor for Enemy" << std::endl;
  11.     }
  12.  
  13.     ~Enemy()
  14.     {
  15.         std::cout << "Inside destructor for Enemy" << std::endl;
  16.     }
  17.  
  18.  
  19.     sf::Vector2f getMoveDirection() const { return m_MoveDirection; }
  20.  
  21.     void setMoveDirection(const sf::Vector2f &moveDirection) { m_MoveDirection = moveDirection; }
  22.     void setMoveDirection(float x, float y) { m_MoveDirection.x = x; m_MoveDirection.y = y; }
  23.  
  24.     void changeDirection();
  25.     void update();
  26.  
  27. private:
  28.  
  29.     sf::Vector2f m_MoveDirection;
  30.  
  31. };
  32.  
  33.  
  34. void Enemy::changeDirection() {
  35.     float new_x, new_y,
  36.         x_neg, y_neg;
  37.  
  38.     new_x = rand() % 2;
  39.     new_y = rand() % 2;
  40.     x_neg = rand() % 2;
  41.     y_neg = rand() % 2;
  42.  
  43.     if (x_neg == 1)
  44.         new_x = -new_x;
  45.  
  46.     if (y_neg == 1)
  47.         new_y = -new_y;
  48.  
  49.     setMoveDirection(new_x, new_y);
  50. }
  51.  
  52. void Enemy::update() {
  53.     move(m_MoveDirection * getSpeed());
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement