Форум программистов, компьютерный форум CyberForum.ru

Создать анимацию идущего человека - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Перевести с Паскаля на Си http://www.cyberforum.ru/cpp-beginners/thread1142040.html
Структура элемента массива работник: фамилия, число, месяц и год рождения, пол. определить: ─ фамилия самого старшего мужчины; ─ все фамилии, начинающиеся с заданной буквы; ─ список людей, родившихся в заданном месяце. uses crt; type info = record FIO: string;
C++ программа меняет массивы местами.что не так? #include <iostream>; #include<locale> using namespace std; int rl1,rl2,rl3,c,t; int main() { setlocale (LC_ALL,"Rus"); int a; cin>>a; http://www.cyberforum.ru/cpp-beginners/thread1142026.html
Сложение чисел в восьмеричной системе счисления C++
Исходными данными являются два числа, вводимые пользователем в десятичной системе счисления. После ввода они переводятся в восмеричную систему счисления, результат перевода выводится на экран, затем осуществляется операция сложения в восмеричной системе счисления. Окончательный результат выводится в восмеричной и десятичной системах счисления. Длина разрядной сетки целой части – 16,...
Преобразование строки в дробь C++
Выводит только первые 2 цифры после точки. Как сделать, чтобы дробь выводилась полностью? typedef wchar_t Char; typedef char ByteChar; //... template<class TValue> std::wstring ToString( TValue val ) { std::wstringstream ss;
C++ Работа со строками. Error C3861: getline: идентификатор не найден http://www.cyberforum.ru/cpp-beginners/thread1142016.html
#include "stdafx.h" #include <iostream> #include <string.h> using namespace std; int _tmain(int argc, _TCHAR* argv) { setlocale(LC_CTYPE,"");
C++ Менять массивы местами при условии #include <iostream>; #include<locale> using namespace std; int rl1,rl2,rl3,c; int main() { setlocale (LC_ALL,"Rus"); int a; cin>>a; подробнее

Показать сообщение отдельно
IrineK
Заблокирован
08.04.2014, 07:22     Создать анимацию идущего человека
Этот гражданин ходит кругами в консоли, но три функции, которые используются - универсальны.
Передадите им дескриптор окна.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <Windows.h>
 
void Circle (HWND hW, int xCenter, int yCenter, int radius, COLORREF borderColor, COLORREF fillColor)
{   HDC hDC = GetDC(hW);
    HPEN hPen = CreatePen(PS_SOLID, 1, borderColor);
    HPEN hOldPen = (HPEN)SelectObject(hDC, hPen);
    HBRUSH hBrush = CreateSolidBrush(fillColor);
    HBRUSH hOldBrush = (HBRUSH) SelectObject(hDC, hBrush);
    
    Ellipse(hDC, xCenter - radius, yCenter - radius, xCenter + radius, yCenter + radius);
    
    SelectObject(hDC, hOldPen); 
    DeleteObject (hPen);
    SelectObject(hDC, hOldBrush); 
    DeleteObject (hBrush);
    ReleaseDC (hW, hDC);
}
 
void Line (HWND hW, int x0, int y0, int x1, int y1, COLORREF color)
{   HDC hDC = GetDC(hW);
    HPEN hPen = CreatePen(PS_SOLID, 2, color);
    HPEN hOldPen = (HPEN)SelectObject(hDC, hPen);
    SelectObject(hDC, hPen);
    POINT p = {0,0};
    GetCurrentPositionEx (hDC, &p);
    MoveToEx(hDC, x0, y0, &p);
    LineTo (hDC, x1, y1);
    
    SelectObject(hDC, hOldPen); 
    DeleteObject (hPen);
    ReleaseDC (hW, hDC);
}
 
void Picture (HWND hW, int dx, int dy, int mode)
{   COLORREF border = RGB(255,255,0), fill = RGB (127,127,0), line = RGB (0,255,0), black = RGB (0,0,0);
    if (!mode)
        border = fill = line = black;
    int x0 = 50, y0 = 50, r = 10;
 
    Circle (hW, x0 + dx, y0 + dy, r, border, fill);
    Line (hW, x0 + dx, y0 + dy + r, x0 + dx, y0 + dy + r + 30, line);
    Line (hW, x0 + dx, y0 + dy + r + 30, x0 + dx - 10, y0 + dy + r + 70, line);
    Line (hW, x0 + dx, y0 + dy + r + 30, x0 + dx + 10, y0 + dy + r + 70, line);
    Line (hW, x0 + dx - 5, y0 + dy + r + 7, x0 + dx + 5, y0 + dy + r + 2, line);
    Line (hW, x0 + dx - 5, y0 + dy + r + 7, x0 + dx - 10, y0 + dy + r + 25, line);
    Line (hW, x0 + dx + 5, y0 + dy + r + 2, x0 + dx + 10, y0 + dy + r + 20, line);
}
 
 
int main()
{   HWND hW = GetConsoleWindow();
    int step = -1;
    Sleep (1000);
 
    for ( ; ;++step)
    {   Picture (hW, 5*step,0,1);
        Sleep (200);
        Picture (hW, 5*step,0,0);
        if (step > 100)
            step = -10;
    }
    
    system ("pause");
    return 0;
}
Изображения
 
 
Текущее время: 16:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru