Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2014
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.93 KB | None | 0 0
  1. #include <random>
  2. #include <time.h>
  3.  
  4. #define UP 0
  5. #define LEFT 1
  6. #define RIGHT 2
  7. #define DOWN 3
  8.  
  9. class Enemy {
  10.  
  11. public:
  12.     int startPosX;
  13.     int startPosY;
  14.     int boxWidth;
  15.     int boxHeight;
  16.     int boxCurrentPosX;
  17.     int boxCurrentPosY;
  18.  
  19.     int currentPosX = 123;
  20.     int currentPosY = 123;
  21.  
  22.     int velocity = 2;
  23.  
  24.     void move();
  25.     void draw();
  26.     int getRandomDirection();
  27. };
  28.  
  29. extern Enemy enemy;
  30.  
  31. int Enemy::getRandomDirection() {
  32.     int direction = rand() % 400;
  33.     if (direction > 0 && direction < 100){
  34.         return UP;
  35.     }
  36.     else if (direction > 100 && direction < 200) {
  37.         return LEFT;
  38.     }
  39.     else if (direction > 200 && direction < 300) {
  40.         return RIGHT;
  41.     }
  42.     else if (direction > 300 && direction < 400) {
  43.         return DOWN;
  44.     }
  45. }
  46.  
  47. void Enemy::move(){
  48.  
  49.     bool directionValid = false;
  50.     do
  51.     {
  52.         int tmpVar = 0;
  53.         switch (getRandomDirection())
  54.         {
  55.         case(UP) :
  56.             tmpVar = boxCurrentPosY - 1;
  57.             if (startPosY <= tmpVar)
  58.             {
  59.                 boxCurrentPosY = tmpVar;
  60.                 currentPosY += velocity;
  61.                 directionValid = true;
  62.             }
  63.             break;
  64.         case(DOWN) :
  65.             tmpVar = boxCurrentPosY + 1;
  66.             if ((startPosY + boxHeight) >= tmpVar){
  67.                 boxCurrentPosY = tmpVar;
  68.                 currentPosY -= velocity;
  69.                 directionValid = true;
  70.             }
  71.             break;
  72.         case(LEFT) :
  73.             tmpVar = boxCurrentPosX - 1;
  74.             if (startPosX <= tmpVar)
  75.             {
  76.                 boxCurrentPosX = tmpVar;
  77.                 currentPosX -= velocity;
  78.                 directionValid = true;
  79.             }
  80.             break;
  81.         case(RIGHT) :
  82.             tmpVar = boxCurrentPosX + 1;
  83.             if ((startPosX + boxWidth) >= tmpVar)
  84.             {
  85.                 boxCurrentPosX = tmpVar;
  86.                 currentPosX += velocity;
  87.                 directionValid = true;
  88.             }
  89.             break;
  90.         }
  91.     } while (directionValid == false);
  92. }
  93.  
  94. void Enemy::draw(){
  95.  
  96.     // Draw using currentPosX, currentPosY sould be cords.
  97. }
  98.  
  99. int main()
  100. {
  101.     enemy.startPosX = 0;
  102.     enemy.startPosY = 0;
  103.  
  104.     enemy.boxWidth = 5;
  105.     enemy.boxHeight = 5;
  106.  
  107.     enemy.boxCurrentPosX = 0;
  108.     enemy.boxCurrentPosY = 0;
  109.  
  110.     srand(time(NULL));
  111.  
  112.     enemy.move();
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement