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

Анимация в Borland C++ v.3 - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.74
JM007
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 57
16.04.2010, 18:59     Анимация в Borland C++ v.3 #1
Всем привет!
Подскажите пожалуйста как делать анимацию в графическом(dos) режиме
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2010, 18:59     Анимация в Borland C++ v.3
Посмотрите здесь:

C++ Borland C++ 3.11
Borland c++ 5.02 C++
C++ Анимация в borland v6
C++ Borland C++ 3.1
C++ Русские хелпы по Borland C++ 5.* и Borland C++ Bulder
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
16.04.2010, 19:55     Анимация в Borland C++ v.3 #2
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
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
 
int main(void)
{
    int gdriver = DETECT, gmode, errorcode;
    int midx, midy;
    int radius = 50;
 
    initgraph(&gdriver, &gmode, "");
 
    errorcode = graphresult();
    if (errorcode != grOk)
    {
        printf("Graphics error: %s\n", grapherrormsg(errorcode));
        printf("Press any key to halt:");
        getch();
        exit(1);
    }
 
    midx = 0 + radius;
    midy = getmaxy() / 2;
 
    for(float i = midx; i < 640 - radius; i+=0.3){
        setcolor(getbkcolor());
        circle(i-1, midy, radius);
        setcolor(GREEN);
        circle(i, midy, radius);
    }
 
    getch();
    closegraph();
        return 0;
}
рисует круг)
простейший пример анимации - перемещать фигуру с определенным шагом в определенном направлении и за ней рисовать такую же фигуру цвета фона с таким же шагом в таком же направлении, т.е. она будет зарисовывать след от нашей фигурки, и получится движение)

В Хэлпе ВСРР 3.1 есть примеры всех ф-ций граф режима и там все очень просто и доступно написано, а вот с движком могут быть нюансы... но это позже
думаю, суть вам ясна, напишите ф-цию, которая будет реализовывать движение и принимать параметры координат и во всевозможных циклах вставляйте ее)
будут вопросы, обращайтесь)
JM007
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 57
16.04.2010, 22:14  [ТС]     Анимация в Borland C++ v.3 #3
Спасибо.))
Как сделать так, чтобы короткие линие двигались на определенном интервале бесконечно(например как красные муравьи в Word), подскажите пожалуйста...
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
17.04.2010, 02:15     Анимация в Borland C++ v.3 #4
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
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
 
int main()
{
    int gdriver = DETECT, gmode, errorcode;
 
    initgraph(&gdriver, &gmode, "");
 
    errorcode = graphresult();
    if (errorcode != grOk)
    {
        printf("Graphics error: %s\n", grapherrormsg(errorcode));
        printf("Press any key to halt:");
        getch();
        exit(1);
    }
 
    int x = 50, y = 50, y1 = y, finish = 400;
    for(int i = x; i < finish; i+=10){
        setcolor(getbkcolor());
        line(i-10, y, i+10, y1);
        if(i+10 == finish)
            i = x;
        setcolor(RED);
        line(i, y, i+10, y1);
        delay(100);
    }
    getch();
        closegraph();
        return 0;
}
Ctrl+Pause Break аварийное завершение программы, т.к. цикл бесконечный)
JM007
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 57
18.04.2010, 17:11  [ТС]     Анимация в Borland C++ v.3 #5
А как сделать так, чтобы линия шла не вправо, а влево...
Vorona
Peace 2 all shining faces
 Аватар для Vorona
660 / 522 / 44
Регистрация: 05.03.2010
Сообщений: 1,256
18.04.2010, 17:33     Анимация в Borland C++ v.3 #6
поменяйте в цикле for( ;; ) значения i
C
1
for(int i = finish; i > x; i-=10){
в данном случае значения i это пиксели экрана 640х480
(0, 0)_____________
|...........................|
|...........................|
|...........................|
|...........................|
|...........................|
|_________________|(640, 480)
таким образом пиксели расположены на экране((0,0) - верхний левый угол и (640,480) - нижний правый)
центр экрана - (320,240) пиксели
или можно узнать такими ф-циями:
C
1
2
3
4
5
int x = getmaxx()/2;
int y = getmaxy()/2;
//нарисовать красную точку в центре экрана
int color = RED;
putpixel(x, y, color);
Yandex
Объявления
18.04.2010, 17:33     Анимация в Borland C++ v.3
Ответ Создать тему
Опции темы

Текущее время: 23:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru