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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Danvern
40 / 39 / 3
Регистрация: 22.06.2010
Сообщений: 415
Записей в блоге: 1
#1

Анимация - C++

12.12.2010, 12:57. Просмотров 394. Ответов 0
Метки нет (Все метки)

Помогите написал программку которая анимирует движения квадрата 50х50 мне надо чтоб он остановился у конца экрана а он останавливается не где надо....
Вот код:
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include<windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    char clName[]="AYY";
 
    HWND hWnd;  
    WNDCLASSEX wc;
    MSG msg;
    wc.cbSize=sizeof(wc);
    wc.style=CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc=WndProc;
    wc.cbClsExtra=0;
    wc.cbWndExtra=0;
    wc.hInstance=hInst;
    wc.hIcon=LoadIcon(NULL,NULL);
    wc.hCursor=LoadCursor(NULL,NULL);
    wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
    wc.lpszClassName=clName;
    wc.lpszMenuName=NULL;
    wc.hIconSm=LoadIcon(NULL,NULL);
 
    RegisterClassEx(&wc);
 
    hWnd=CreateWindow(
        clName,
        "Fizika",
        WS_OVERLAPPEDWINDOW&~WS_THICKFRAME,
        CW_USEDEFAULT,
        0,
        800,
        600,
        NULL,
        (HMENU)NULL,
        hInst,
        NULL);
    ShowWindow(hWnd,SW_SHOW);
 
    while (GetMessage(&msg, NULL, 0, 0))  {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParm, LPARAM lParm)
{
    HBITMAP hBMPBkrd;
    HBITMAP hBallBkrd;
    HBRUSH hBkrd;
    HBRUSH hBall;
    HBRUSH hFon;
    HBRUSH hOldBrush;
    RECT rect;
    RECT rOkna;
    HDC hDc;
    PAINTSTRUCT ps;
    hBMPBkrd=(HBITMAP)LoadImage(NULL,"Fon.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
    int i=0;
    float dX,x=0;
    switch(msg)
    {
    case WM_CREATE:
       
       hFon=CreatePatternBrush(hBMPBkrd);
       SetClassLong(hWnd, GCL_HBRBACKGROUND, (LONG)hFon);
        break;
    case WM_PAINT:
        hDc = BeginPaint(hWnd, &ps);
        hFon=CreatePatternBrush(hBMPBkrd);
        GetWindowRect(hWnd,&rOkna);
        dX=rOkna.right/500.;
        hBallBkrd=(HBITMAP)LoadImage(NULL,"Ball.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
        hBall=CreatePatternBrush(hBallBkrd);
        SetRect(&rect,0,0,50,50);
        FillRect(hDc,&rect,hBall);
 
        while(rOkna.right>x+25) //вот тут загвоздка с условием
        {
        GetWindowRect(hWnd,&rOkna);
        x+=dX;
        FillRect(hDc,&rect,hFon);
        OffsetRect(&rect,(FLOAT)dX,0);
        FillRect(hDc,&rect,hBall);
                       FillRect(hDc,&rect,hFon);
        Sleep(1);
        }
        FillRect(hDc,&rect,hBall);
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
    break;
    
    default:
        return DefWindowProc(hWnd, msg, wParm, lParm);
    }
    return 0;
}
Добавлено через 1 час 48 минут
Ааа ещё есть ли такая функция которая определяет нахождение картинки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2010, 12:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Анимация (C++):

Анимация. - C++
Я сделала анимацию барашка, он движется ,но, когда он двигается дальше, предыдущие не стираются. Пробовала txClear(), но не работает, а...

Анимация - C++
Ребята помогите написать анимацию(на ваш выбор). Анимация должна быть не очень сложной) Пожалуйста))

Анимация в С++ - C++
Уважаемые, программисты! кто может сделать анимацию в программе С++, рисунок можно самый простой лижбо он был в движение. Зарание огромное...

Анимация - C++
Как мне нарисовать ромб, так чтобы он менял свою форму, относительно своих углов?

анимация в С++ - C++
как заставить шарик вращаться?

Анимация - C++
Всем привет. Меня интересует такой вопрос. Есть файл *.FBX насколько сложно сделать программу для работы с этим типом. В конкретном случае...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2010, 12:57
Привет! Вот еще темы с ответами:

Управляемая анимация в C++ - C++
Нарисовать схему электрической цепи, чтобы ключи при нажатии на соответствующие цифры открывались и закрывались, при включеном ключе ток...

Анимация в GDI - C++
Подскажите, пожалуйста, как анимировать фигуру в GDI, чтобы она при нажатии на пробел, поднималась на пару пикселей Заранее спасибо

Анимация в игре - C++
Всем привет! Вот делаем с друзьями 2D платформер. Я использую SDL библиотеку. У меня получилось сделать движения влево и вправо и...

Анимация в консоли - C++
Как вы делаете анимацию в консоли? Я просто очищал екран вызывал метод который выводил все на екран но оно начиет мигать и как-то не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru