sidrs

CGR Ass 6 - Rainman

Dec 15th, 2024
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. #include <graphics.h>
  2. #include <conio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. using namespace std;
  6.  
  7. class WalkingMan {
  8.     int rhx, rhy;
  9.  
  10. public:
  11.     void drawMan(int i);
  12.     void drawRain(int width, int height);
  13. };
  14.  
  15. void WalkingMan::drawMan(int i) {
  16.     line(20, 380, 580, 380); // Ground line
  17.  
  18.     // Body
  19.     line(35 + i, 340, 35 + i, 310); // Torso
  20.     circle(35 + i, 300, 10);        // Head
  21.  
  22.     if (i % 2) { // Walking animation
  23.         line(35 + i, 340, 25 + i, 380); // Left leg
  24.         line(35 + i, 340, 45 + i, 380); // Right leg
  25.     } else {
  26.         line(35 + i, 340, 30 + i, 380); // Left leg
  27.         line(35 + i, 340, 40 + i, 380); // Right leg
  28.     }
  29.  
  30.     line(35 + i, 310, 50 + i, 330); // Right arm
  31.     line(35 + i, 310, 20 + i, 330); // Left arm
  32. }
  33.  
  34. void WalkingMan::drawRain(int width, int height) {
  35.     for (int j = 0; j < 100; j++) {
  36.         outtextxy(rand() % width, rand() % (height - 50), "|");
  37.     }
  38. }
  39.  
  40. int main() {
  41.     int gd = DETECT, gm;
  42.     initgraph(&gd, &gm, nullptr);
  43.  
  44.     WalkingMan obj;
  45.     srand(time(0)); // Seed for random rain
  46.  
  47.     int max_x = getmaxx();
  48.     int max_y = getmaxy();
  49.  
  50.     for (int i = 0; i < 500; i++) {
  51.         obj.drawMan(i);           // Draw the walking man
  52.         obj.drawRain(max_x, max_y); // Draw rain
  53.         delay(150);
  54.         cleardevice();
  55.     }
  56.  
  57.     getch();
  58.     closegraph();
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment