baadgeorge

Untitled

Apr 19th, 2021
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.44 KB | None | 0 0
  1. #include <windows.h>
  2. #include "Classes.h"
  3. #define KEY_DOWN(vk_code)((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
  4.  
  5. extern HDC hdc;
  6.  
  7. Location::Location(int _X, int _Y)
  8. {
  9. X = _X;
  10. Y = _Y;
  11. }
  12.  
  13. Location::~Location() {}
  14.  
  15. int Location::GetX()
  16. {
  17. return X;
  18. }
  19.  
  20. int Location::GetY()
  21. {
  22. return Y;
  23. }
  24.  
  25. Point::Point(int _X, int _Y) : Location(_X, _Y)
  26. {
  27. isVisible = false;
  28. }
  29.  
  30.  
  31. Point::~Point() {}
  32.  
  33. void Point::Show()
  34. {
  35. isVisible = true;
  36. SetPixel(hdc, X, Y, RGB(0, 0, 255));
  37. }
  38.  
  39. void Point::Hide()
  40. {
  41. isVisible = false;
  42. SetPixel(hdc, X, Y, RGB(255, 0, 0));
  43. }
  44.  
  45. void Point::MoveTo(int NewX, int NewY)
  46. {
  47. Hide();
  48. X = NewX;
  49. Y = NewY;
  50. Show();
  51. }
  52.  
  53. void Point::Drag(int Step)
  54. {
  55. int FigX, FigY;
  56. FigX = GetX();
  57. FigY = GetY();
  58.  
  59. while (1)
  60. {
  61. if (KEY_DOWN(VK_LEFT))
  62. {
  63. FigX -= Step;
  64. MoveTo(FigX, FigY);
  65. Sleep(200);
  66. }
  67. if (KEY_DOWN(VK_RIGHT))
  68. {
  69. FigX += Step;
  70. MoveTo(FigX, FigY);
  71. Sleep(200);
  72. }
  73. if (KEY_DOWN(VK_DOWN))
  74. {
  75. FigY += Step;
  76. MoveTo(FigX, FigY);
  77. Sleep(200);
  78. }
  79. if (KEY_DOWN(VK_UP))
  80. {
  81. FigY -= Step;
  82. MoveTo(FigX, FigY);
  83. Sleep(200);
  84. }
  85. }
  86.  
  87. }
  88.  
  89. Grinder::Grinder(int _X, int _Y, int _Scale) : Point(_X, _Y)
  90. {
  91. X = _X;
  92. Y = _Y;
  93. Scale = _Scale;
  94. }
  95.  
  96. Grinder::~Grinder() {}
  97.  
  98. void Grinder::Show()
  99. {
  100. HPEN pen;
  101. pen = CreatePen(PS_SOLID, 1, RGB(0, 255, 255));
  102. SelectObject(hdc, pen);
  103. HBRUSH brush;
  104. MoveToEx(hdc, X, Y, NULL);
  105.  
  106. //vent
  107. brush = CreateSolidBrush(RGB(255, 0, 0));
  108. SelectObject(hdc, brush);
  109. Rectangle(hdc, X + 440 * Scale, Y + 200 * Scale, X + 460 * Scale, Y + 100 * Scale);
  110.  
  111. //bottom
  112. brush = CreateSolidBrush(RGB(255, 155, 0));
  113. SelectObject(hdc, brush);
  114. Rectangle(hdc, X + 305 * Scale, Y + 200 * Scale, X + 495 * Scale, Y + 320 * Scale);
  115.  
  116. //top
  117. brush = CreateSolidBrush(RGB(0, 0, 255));
  118. SelectObject(hdc, brush);
  119. POINT vertices[] = { {X + 400 * Scale, Y + 100 * Scale}, {X + 500 * Scale, Y + 200 * Scale}, {X + 300 * Scale, Y + 200 * Scale} };
  120. Polygon(hdc, vertices, sizeof(vertices) / sizeof(vertices[0]));
  121.  
  122. //window
  123. brush = CreateSolidBrush(RGB(155, 0, 255));
  124. SelectObject(hdc, brush);
  125. Rectangle(hdc, X + 365 * Scale, Y + 230 * Scale, X + 435 * Scale, Y + 290 * Scale);
  126. SelectObject(hdc, GetStockObject(HOLLOW_BRUSH));
  127. pen = CreatePen(PS_SOLID, 2, RGB(0, 255, 255));
  128. SelectObject(hdc, pen);
  129. MoveToEx(hdc, X + 400 * Scale, Y + 230 * Scale, NULL);
  130. LineTo(hdc, X + 400 * Scale, Y + 290 * Scale);
  131. MoveToEx(hdc, X + 365 * Scale, Y + 260 * Scale, NULL);
  132. LineTo(hdc, X + 435 * Scale, Y + 260 * Scale);
  133.  
  134. MoveToEx(hdc, X, Y, NULL);
  135. //outbilding
  136. brush = CreateSolidBrush(RGB(60, 155, 30));
  137. SelectObject(hdc, brush);
  138. pen = CreatePen(PS_SOLID, 1, RGB(0, 255, 255));
  139. SelectObject(hdc, pen);
  140. Rectangle(hdc, X + 495 * Scale, Y + 320 * Scale, X + 550 * Scale, Y + 250 * Scale);
  141.  
  142. //wheel
  143. SelectObject(hdc, GetStockObject(HOLLOW_BRUSH));
  144. pen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
  145. SelectObject(hdc, pen);
  146. Ellipse(hdc, X + 475 * Scale, Y + 350 * Scale, X + 575 * Scale, Y + 250 * Scale);
  147.  
  148. brush = CreateSolidBrush(RGB(0, 0, 0));
  149. SelectObject(hdc, brush);
  150. Ellipse(hdc, X + 520 * Scale, Y + 305 * Scale, X + 530 * Scale, Y + 295 * Scale);
  151.  
  152. SelectObject(hdc, GetStockObject(HOLLOW_BRUSH));
  153. pen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
  154. MoveToEx(hdc, X + 580 * Scale, Y + 335 * Scale, NULL);
  155. LineTo(hdc, X + 470 * Scale, Y + 265 * Scale);
  156. MoveToEx(hdc, X + 490 * Scale, Y + 355 * Scale, NULL);
  157. LineTo(hdc, X + 560 * Scale, Y + 245 * Scale);
  158.  
  159. DeleteObject(pen);
  160. DeleteObject(brush);
  161. }
  162.  
  163. void Grinder::Hide()
  164. {
  165. isVisible = false;
  166. HBRUSH rubber;
  167. rubber = CreateSolidBrush(RGB(243, 243, 243));
  168. HPEN pen = CreatePen(PS_SOLID, 1, RGB(243, 243, 243));
  169. SelectObject(hdc, pen);
  170. SelectObject(hdc, rubber);
  171. MoveToEx(hdc, X, Y, NULL);
  172. Rectangle(hdc, X + 300, Y + 100 * Scale, X + 600 * Scale, Y + 360 * Scale);
  173. DeleteObject(pen);
  174. DeleteObject(rubber);
  175. }
  176.  
  177. void Grinder::ChangeSize(int delta)
  178. {
  179. Hide();
  180. Scale = delta;
  181. Show();
  182. }
  183.  
  184. Rock::Rock(int _X, int _Y, int _Scale) : Point(_X, _Y)
  185. {
  186. X = _X;
  187. Y = _Y;
  188. Scale = _Scale;
  189. }
  190.  
  191. Rock::~Rock() {}
  192.  
  193. void Rock::Show()
  194. {
  195. HPEN pen;
  196. pen = CreatePen(PS_SOLID, 1, RGB(0, 255, 155));
  197. SelectObject(hdc, pen);
  198. HBRUSH brush;
  199. MoveToEx(hdc, X, Y, NULL);
  200.  
  201. brush = CreateSolidBrush(RGB(155, 0, 0));
  202. SelectObject(hdc, brush);
  203. Ellipse(hdc, X + 150 * Scale, Y + 340 * Scale, X + 200 * Scale, Y + 380 * Scale);
  204. }
  205.  
  206. void Rock::Hide()
  207. {
  208.  
  209. }
  210.  
Advertisement
Add Comment
Please, Sign In to add comment