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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 27, средняя оценка - 4.74
JM007
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 57
#1

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

16.04.2010, 18:59. Просмотров 3405. Ответов 5
Метки нет (Все метки)

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

Анимация в borland v6 - C++
Доброго времени суток! Подскажите пожалуйста,как мне написать движение объекта в восьми направлениях? Ну,т.е. при нажатии на кнопку с...

Русские хелпы по Borland C++ 5.* и Borland C++ Bulder - C++
Подскажите где найти русские хелпы на Borland C++ 5.* и Borland C++ Bulder ...

Borland C++ 3.1 - C++
Кто может набрать ету формулу в програми Borland C++ 3.1

Borland C - C++
Ребята помогите плиз решить простую задачку!! Найти произведение всех цифр заданого четырехзначного числа!! Заранее спасибо...

Borland c++ 4.5 - C++
#include <iostream.h> #include <conio.h> #include <cstring.h> #include <string.h> class OverflowException { public: ...

Borland c++ 5.02 - C++
Тут получается 9 задач за каждую могу заплатить по 100 рублей.Кого заинтересовало Мой Icq 428850079. Сначала пишем в аську. Там...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
16.04.2010, 19:55 #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 есть примеры всех ф-ций граф режима и там все очень просто и доступно написано, а вот с движком могут быть нюансы... но это позже
думаю, суть вам ясна, напишите ф-цию, которая будет реализовывать движение и принимать параметры координат и во всевозможных циклах вставляйте ее)
будут вопросы, обращайтесь)
1
JM007
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 57
16.04.2010, 22:14  [ТС] #3
Спасибо.))
Как сделать так, чтобы короткие линие двигались на определенном интервале бесконечно(например как красные муравьи в Word), подскажите пожалуйста...
0
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
17.04.2010, 02:15 #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 аварийное завершение программы, т.к. цикл бесконечный)
1
JM007
0 / 0 / 0
Регистрация: 04.04.2010
Сообщений: 57
18.04.2010, 17:11  [ТС] #5
А как сделать так, чтобы линия шла не вправо, а влево...
0
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,283
18.04.2010, 17:33 #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);
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.04.2010, 17:33
Привет! Вот еще темы с ответами:

Borland c++ - C++
Помогите, пожалуйста, решить задачу: Даны числа a и b. Сколько в диапазоне чисел, в которых есть по крайней мере 2 одинаковые цифры?

borland c++ - C++
люди откуда можно скачать borland C++ builder

Borland C++ 3.11 - C++
Помогите пожалуйста используя Borland C++ 3.11 Вот задание в формате doc: ...

Borland C++ - C++
как написать в Borland C++ так что бы при нажатий клавиш считало сколько было нажато клавиш????


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.04.2010, 17:33
Ответ Создать тему
Опции темы

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