Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include "Classes.h"
- #define KEY_DOWN(vk_code)((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
- extern HDC hdc;
- Location::Location(int _X, int _Y)
- {
- X = _X;
- Y = _Y;
- }
- Location::~Location() {}
- int Location::GetX()
- {
- return X;
- }
- int Location::GetY()
- {
- return Y;
- }
- Point::Point(int _X, int _Y) : Location(_X, _Y)
- {
- isVisible = false;
- }
- Point::~Point() {}
- void Point::Show()
- {
- isVisible = true;
- SetPixel(hdc, X, Y, RGB(0, 0, 255));
- }
- void Point::Hide()
- {
- isVisible = false;
- SetPixel(hdc, X, Y, RGB(255, 0, 0));
- }
- void Point::MoveTo(int NewX, int NewY)
- {
- Hide();
- X = NewX;
- Y = NewY;
- Show();
- }
- void Point::Drag(int Step)
- {
- int FigX, FigY;
- FigX = GetX();
- FigY = GetY();
- while (1)
- {
- if (KEY_DOWN(VK_LEFT))
- {
- FigX -= Step;
- MoveTo(FigX, FigY);
- Sleep(200);
- }
- if (KEY_DOWN(VK_RIGHT))
- {
- FigX += Step;
- MoveTo(FigX, FigY);
- Sleep(200);
- }
- if (KEY_DOWN(VK_DOWN))
- {
- FigY += Step;
- MoveTo(FigX, FigY);
- Sleep(200);
- }
- if (KEY_DOWN(VK_UP))
- {
- FigY -= Step;
- MoveTo(FigX, FigY);
- Sleep(200);
- }
- }
- }
- Grinder::Grinder(int _X, int _Y, int _Scale) : Point(_X, _Y)
- {
- X = _X;
- Y = _Y;
- Scale = _Scale;
- }
- Grinder::~Grinder() {}
- void Grinder::Show()
- {
- HPEN pen;
- pen = CreatePen(PS_SOLID, 1, RGB(0, 255, 255));
- SelectObject(hdc, pen);
- HBRUSH brush;
- MoveToEx(hdc, X, Y, NULL);
- //vent
- brush = CreateSolidBrush(RGB(255, 0, 0));
- SelectObject(hdc, brush);
- Rectangle(hdc, X + 440 * Scale, Y + 200 * Scale, X + 460 * Scale, Y + 100 * Scale);
- //bottom
- brush = CreateSolidBrush(RGB(255, 155, 0));
- SelectObject(hdc, brush);
- Rectangle(hdc, X + 305 * Scale, Y + 200 * Scale, X + 495 * Scale, Y + 320 * Scale);
- //top
- brush = CreateSolidBrush(RGB(0, 0, 255));
- SelectObject(hdc, brush);
- POINT vertices[] = { {X + 400 * Scale, Y + 100 * Scale}, {X + 500 * Scale, Y + 200 * Scale}, {X + 300 * Scale, Y + 200 * Scale} };
- Polygon(hdc, vertices, sizeof(vertices) / sizeof(vertices[0]));
- //window
- brush = CreateSolidBrush(RGB(155, 0, 255));
- SelectObject(hdc, brush);
- Rectangle(hdc, X + 365 * Scale, Y + 230 * Scale, X + 435 * Scale, Y + 290 * Scale);
- SelectObject(hdc, GetStockObject(HOLLOW_BRUSH));
- pen = CreatePen(PS_SOLID, 2, RGB(0, 255, 255));
- SelectObject(hdc, pen);
- MoveToEx(hdc, X + 400 * Scale, Y + 230 * Scale, NULL);
- LineTo(hdc, X + 400 * Scale, Y + 290 * Scale);
- MoveToEx(hdc, X + 365 * Scale, Y + 260 * Scale, NULL);
- LineTo(hdc, X + 435 * Scale, Y + 260 * Scale);
- MoveToEx(hdc, X, Y, NULL);
- //outbilding
- brush = CreateSolidBrush(RGB(60, 155, 30));
- SelectObject(hdc, brush);
- pen = CreatePen(PS_SOLID, 1, RGB(0, 255, 255));
- SelectObject(hdc, pen);
- Rectangle(hdc, X + 495 * Scale, Y + 320 * Scale, X + 550 * Scale, Y + 250 * Scale);
- //wheel
- SelectObject(hdc, GetStockObject(HOLLOW_BRUSH));
- pen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
- SelectObject(hdc, pen);
- Ellipse(hdc, X + 475 * Scale, Y + 350 * Scale, X + 575 * Scale, Y + 250 * Scale);
- brush = CreateSolidBrush(RGB(0, 0, 0));
- SelectObject(hdc, brush);
- Ellipse(hdc, X + 520 * Scale, Y + 305 * Scale, X + 530 * Scale, Y + 295 * Scale);
- SelectObject(hdc, GetStockObject(HOLLOW_BRUSH));
- pen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0));
- MoveToEx(hdc, X + 580 * Scale, Y + 335 * Scale, NULL);
- LineTo(hdc, X + 470 * Scale, Y + 265 * Scale);
- MoveToEx(hdc, X + 490 * Scale, Y + 355 * Scale, NULL);
- LineTo(hdc, X + 560 * Scale, Y + 245 * Scale);
- DeleteObject(pen);
- DeleteObject(brush);
- }
- void Grinder::Hide()
- {
- isVisible = false;
- HBRUSH rubber;
- rubber = CreateSolidBrush(RGB(243, 243, 243));
- HPEN pen = CreatePen(PS_SOLID, 1, RGB(243, 243, 243));
- SelectObject(hdc, pen);
- SelectObject(hdc, rubber);
- MoveToEx(hdc, X, Y, NULL);
- Rectangle(hdc, X + 300, Y + 100 * Scale, X + 600 * Scale, Y + 360 * Scale);
- DeleteObject(pen);
- DeleteObject(rubber);
- }
- void Grinder::ChangeSize(int delta)
- {
- Hide();
- Scale = delta;
- Show();
- }
- Rock::Rock(int _X, int _Y, int _Scale) : Point(_X, _Y)
- {
- X = _X;
- Y = _Y;
- Scale = _Scale;
- }
- Rock::~Rock() {}
- void Rock::Show()
- {
- HPEN pen;
- pen = CreatePen(PS_SOLID, 1, RGB(0, 255, 155));
- SelectObject(hdc, pen);
- HBRUSH brush;
- MoveToEx(hdc, X, Y, NULL);
- brush = CreateSolidBrush(RGB(155, 0, 0));
- SelectObject(hdc, brush);
- Ellipse(hdc, X + 150 * Scale, Y + 340 * Scale, X + 200 * Scale, Y + 380 * Scale);
- }
- void Rock::Hide()
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment