Аватар для xSTABLEx
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 55

Когда бильярдный шар попал в лузу, нужно чтобы таймер останавливался

30.03.2014, 17:34. Показов 1714. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Когда бильярдный шар попал в лузу, нужно чтобы таймер останавливался.. Как это сделать?
Вот проект:
Вложения
Тип файла: rar Задание 105.rar (478.4 Кб, 27 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.03.2014, 17:34
Ответы с готовыми решениями:

Как сделать, чтобы при первом нажатии кнопки таймер запускался а при втором останавливался
Подскажите пожалуста как зделать чтобы при первом нажатии кнопки таймер запускался а при втором останавливался

Бильярдный шар (графика)
вот короче задача: Задание 93:. “Биллиардный шар”. Нарисуйте «биллиардный стол» – большой прямоугольник. Окружность под углом летает по...

Работа с графикой. Бильярдный шар
Ребята,всем доброго вечера. Засел с программой в которой нужно графически показать закон сохранения импульса на примере движения...

6
 Аватар для Pro_grammer
6807 / 2838 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
30.03.2014, 18:39
Лучший ответ Сообщение было отмечено xSTABLEx как решение

Решение

Цитата Сообщение от xSTABLEx Посмотреть сообщение
Как это сделать?
Можно проверять расстояние между шаром и объектом в нашем случае лузой. Как только оно станет минимально допустимым. то программировать событие.

Есть известная формула расчитывающая расстояние между 2-мя объектами на плоскости
Пишем функцию в проект
Visual Basic
1
2
3
Function Dist(ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As  Long
   Dist = Sqr(((X2 - X1) * (X2 - X1)) + ((Y2 - Y1) * (Y2 - Y1)))
End Function
Теперь в процедуру таймера пишем проверку на сближение с лунками, где учитываем размеры лунки или шара.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Timer1_Timer()
x = x + dx: y = y + dy
Ball.Left = x: Ball.Top = y
If x < 5900 Or x > 9920 Then dx = -dx
If y < 1000 Or y > 6800 Then dy = -dy
' если расстояние меньше высоты лунки или шара +5 на всяки случай
If Dist(x, y, 5880, 960) < 140 Then Timer1.Enabled = False
If Dist(x, y, 9960, 960) < 140 Then Timer1.Enabled = False
If Dist(x, y, 5880, 6840) < 140 Then Timer1.Enabled = False
If Dist(x, y, 9960, 6840) < 140 Then Timer1.Enabled = False
 
End Sub
1
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
30.03.2014, 18:48
...
0
 Аватар для xSTABLEx
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 55
30.03.2014, 20:08  [ТС]
Pro_grammer, не работает, выдает "Compile error: Sub или Function не определены"
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
30.03.2014, 20:24
Лучший ответ Сообщение было отмечено xSTABLEx как решение

Решение

корзины
Shape17------->Shape17(0)
Shape18------->Shape17(1)
Shape19------->Shape17(2)
Shape20------->Shape17(3)
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim x As Integer, y As Integer, dx As Integer, dy As Integer
Dim R
 
Private Sub Form_Load()
x = Ball.Left: y = Ball.Top
dx = 40: dy = 60
R = Ball.Width / 2
End Sub
 
Private Sub Timer1_Timer()
x = x + dx: y = y + dy
Ball.Left = x: Ball.Top = y
If x < 5900 Or x > 9920 Then dx = -dx
If y < 1000 Or y > 6800 Then dy = -dy
For i = 0 To 3
If (x - Shape17(i).Left) ^ 2 + (y - Shape17(i).Top) ^ 2 < R ^ 2 Then
Ball.Move Shape17(i).Left, Shape17(i).Top
Timer1.Enabled = False
End If
Next i
End Sub
1
 Аватар для xSTABLEx
2 / 2 / 1
Регистрация: 25.01.2014
Сообщений: 55
30.03.2014, 20:37  [ТС]
Pro_grammer, все, разобрался, спасибо..
0
30.03.2014, 20:58

Не по теме:

Цитата Сообщение от gaw Посмотреть сообщение
Shape17(i).Left) ^ 2
Не используйте в играх, да и любых программах требующих высокого быстродействия, возведение в степень - это очень медленная операция, её лучше заменить умножением!

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.03.2014, 20:58
Помогаю со студенческими работами здесь

Напишите программу: Бильярдный стол и шар
Напишите программу: Шар, который катается по бильярдному столу, когда шар попал в лузу (одну из 6), то программа прерывается. (Хотя бы...

Нарисовать бильярдный стол и катающийся по нему шар
2)Нарисовать бильярдный стол(вид сверху xy)и катающийся по нему шар.

Бильярдный шар начал скользить без вращения
Помогите с задачкой пожалуйста. После удара бильярдный шар начал скользить без вращения со скоростью Vo=2м/с по горизонтальной плоскости...

Движение шара: нужно чтобы шар отталкивался от края формы
procedure TForm1.Timer1Timer(Sender: TObject); var x,y:integer; begin //Координаты шара x:=40; y:=40; //Движение шара ...

snow - нужно, чтоб процесс не останавливался
Когда снег падает, то это останавливается. Я хочу чтоб процесс не останавливался. Например повторялся по три минуты. &lt;div...


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

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

Новые блоги и статьи
Анализ и линтинг кода JavaScript: ESLint, Prettier и JSHint
run.dev 26.04.2025
JavaScript прошёл долгий путь от простого языка для анимации веб-страниц до основы современной веб-разработки. С ростом сложности приложений, увеличением кодовых баз и масштабированием команд. . .
Паттерны в Python: Singleton, Factory и Observer
py-thonny 26.04.2025
Паттерны проектирования — это проверенные временем решения типовых проблем разработки программного обеспечения. Их история берёт начало с книги "Приёмы объектно-ориентированного проектирования. . . .
Исключения в C#: Stack Overflow, Access Violation и Out of memory
stackOverflow 26.04.2025
Исключения в C# — это не только механизм оповещения о проблемах, а целое искусство управления потоком выполнения программы в экстремальных ситуациях. Обычное исключение, например,. . .
Логирование в C# ASP.NET Core с помощью Serilog, ElasticSearch, Kibana
stackOverflow 25.04.2025
Помните те времена, когда для анализа проблемы приходилось подключаться к серверу, искать нужный лог-файл среди десятков других и вручную фильтровать тысячи строк в поисках ошибки? К счастью, эти дни. . .
Структура "железный OnKeyUp" вместо антидребезга. Полностью асинхронный счётчик.
Hrethgir 25.04.2025
Программа для симуляции схемы - Logisim Evolution В общем какое-то время отвлёкся, так было надо, теперь когда запилю это на verilog и FPGA , досоставлю заявку в ФИПС на полезную модель - не готов. . .
Автоматизация Amazon Web Services (AWS) с Boto3 в Python
py-thonny 25.04.2025
Облачные вычисления стали неотъемлемой частью современной ИТ-инфраструктуры, а Amazon Web Services (AWS) занимает лидирующие позиции среди провайдеров облачных услуг. Управление многочисленными. . .
Apache Kafka vs RabbitMQ в микросервисной архитектуре
ArchitectMsa 25.04.2025
Современная разработка ПО всё чаще склоняется к микросервисной архитектуре — подходу, при котором приложение разбивается на множество небольших, автономных сервисов. В этой распределённой среде. . .
Параллельное программирование с OpenMP в C++
NullReferenced 24.04.2025
Параллельное программирование — подход к созданию программ, когда одна задача разбивается на несколько подзадач, которые могут выполняться одновременно. Оно стало необходимым навыком для. . .
Цепочки методов в C# с Fluent API
UnmanagedCoder 24.04.2025
Современное программирование — это не только решение функциональных задач, но и создание кода, который удобно поддерживать, расширять и читать. Цепочки методов и Fluent-синтаксис в C# стали мощным. . .
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru