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

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

Войти
Регистрация
Восстановить пароль
 
TXLib.h
3 / 3 / 0
Регистрация: 01.12.2010
Сообщений: 68
#1

Отскакивание шариков друг от друга - C++

16.12.2010, 14:21. Просмотров 468. Ответов 0
Метки нет (Все метки)

Подскажите, пожалуйста, как сделать так, чтобы три нарисованных шарика, метающиеся по экрану и отскакивающие от стенок, отскакивали также при соударении друг с другом. Заранее спасибо!

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
#include "TXLib.h"
 
void DrawCircle (int x, int y, int r);
void Draw2Circle (int x2, int y2, int r);
void MoveCircle (int x, int y, int v, int dx, int dy, int r, int x2,
                 int y2,int v2, int dx2, int dy2, int x3, int y3,
                 int v3, int dx3, int dy3);
 
 
int main()
{
        txCreateWindow (500, 500);
        MoveCircle (200, 300, 10, 1, 1, 20, 150, 450, 15, - 1, - 1, 100,
                    50, 20, -2, 2);
}
 
void DrawCircle (int x, int y, int r)
{ 
        txSetColor (TX_GREEN);
        txSetFillColor (TX_BLACK);
        txCircle (x, y, r);
}
 
void Draw2Circle (int x2, int y2, int r)
{
        txSetColor (TX_YELLOW);
        txCircle (x2, y2, r);
}       
 
void Draw3Circle (int x3, int y3, int r)
{
        txSetColor (TX_RED);
        txCircle (x3, y3, r);
}        
        
void MoveCircle (int x, int y, int v, int dx, int dy, int r, int x2,
                 int y2,int v2, int dx2, int dy2, int x3, int y3,int v3,
                 int dx3, int dy3)
{
        while (true)
        {
                txClear ();
                
                x += dx*v;
                y += dy*v;
                
                if (x - r < 0 || x + r > 500)
                {
                        dx = - dx;
                } 
 
                if (y - r < 0 || y + r > 500)
                {
                        dy = - dy;
                }    
               
                 DrawCircle (x, y, r);
                
                 x2 += dx2*v2;
                 y2 += dy2*v2;
                 
                 if (x2 - r < 0 || x2 + r > 500)
                 {
                        dx2 = - dx2;
                 }
                 
                 if (y2 - r < 0 || y2 + r > 500)
                 {
                        dy2 = - dy2;
                 }
                 
                 Draw2Circle (x2, y2, r);
                 
                 x3 += dx3*v3;
                 y3 += dy3*v3;
                 
                 if (x3 - r < 0 || x3 + r > 500)
                 {
                        
                        dx3 = - dx3;
                 }
                 
                 if (y3 - r < 0 || y3 + r > 500)
                 {
                        dy3 = - dy3;
                 }
                 Draw3Circle (x3, y3, r);
                 
                 txSleep (100);
         }
}
Добавлено через 1 минуту
И заодно подскажите, код цивильно выглядит? Я имею в виду не уровень программирования, а расположение блоков, кавычек и т.д.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2010, 14:21     Отскакивание шариков друг от друга
Посмотрите здесь:

Структуры с указателями друг на друга - C++
Нужно написать программу для создания динамической конструкции из элементов структуры 2х типов (см. схему). Однако для этого нужно...

В 2х классах указатели друг на друга - C++
Я хочу в main() создать экземпляр класса игрок. и экземпляр класса турнир. Затем вызвать функцию игрока чтоб тот зарегистрировался в...

Подключение .h файлов друг в друга - C++
Здравствуйте. Появилась такая проблема: есть два .h файла, и они перекликаются содержимым: в одном наследуется класс из другого, а в...

Два класса, вызывающие друг друга - C++
У меня есть файл class1.h и файл class2.h внутри класса 1 вызывается класс 2 и наоборот. Но, класс 1 располагается выше и не видит...

Определение классов ссылающихся друг на друга - C++
есть два таких класса(в классе tnode - есть поле node_list children, а node_list - это связанный список tnode) class tnode{ tnode*...

Два класса, требующих друг друга - C++
Существует два класса, обзовём их MyClassA и MyClassB. Возникла такая вот ситуация: у класса MyClassA есть поле типа vector&lt;MyClassB*&gt;...

Как позволить функциями видеть друг друга? - C++
Есть 2 функции вне main, которые должны быть способны вызывать друг друга. Как расширить видимость?

Вычислить расстояние удаляющихся друг от друга автомобилей - C++
Доброго времени суток! Помогите пожалуйста! Нужно решить задачи к зачету. Много пропустил, в том числе и С++. Задача: написать...

Приведение двух классов к типу друг друга - C++
Всем добрый день, Прошу вашей помощи с пониманием принципов работы приведения типов. Проблема следующая: class Sterling1502...

Расположение прямой и отрезка относительно друг друга - C++
Задается уравнение прямой ах+by+c=0,потом задается отрезок. Определить, как расположены они друг относительно друга: отрезок пересекает...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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