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

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

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

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

16.12.2010, 14:21. Просмотров 474. Ответов 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 минуту
И заодно подскажите, код цивильно выглядит? Я имею в виду не уровень программирования, а расположение блоков, кавычек и т.д.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2010, 14:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отскакивание шариков друг от друга (C++):

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

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

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

Вложенные в друг друга классы - C++
Есть исходный код: class1.h #pragma once #include &quot;class2.h&quot; class class1 { private: class2* c2; public: ...

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

Удалить зависимость функций друг от друга - C++
есть 2 функции(ввод и вывод массива).почему если разлучить эти 2 функции то функция show без функции print перестаёт работать и выводит...

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

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

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

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

пары целых чисел, делящиеся друг на друга - C++
Нужна помощь в написании программы, которая должна показать все пары целых чисел от 1 до 8, где первое число будет делиться на второе без...


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

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

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