| VelarThind |
Сообщение
#1
|
![]() Новичок ![]() Группа: Ожидающие Сообщений: 15 Пол: Мужской Репутация: 0 |
Решил тут я бильярд на паскале написать. Ну кий там, шарик ведущий сделал, всё пока работает(кий толкает шарик, он катиться, замедляет ход), но необходимо и другие шары в игру(какой же это будет бильярд с одним шариком), а вот соударение шариков друг с другом, что-то не осилил. Подскажите, пожалуйста!!!! Заранее спасибо.
-------------------- http://magicrown.ru
<... image(s) deleted (Admin) ...> |
![]() ![]() |
| AlienEmperor |
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 160 Пол: Мужской Реальное имя: Серый Репутация: 0 |
Цитата Через такт движения они оба должны были бы оказаться в точке по центру. Но по правилам игры вместо этого должно произойти взаимное отталкивание. Какой должна быть последовательность проверок? На самом деле, в данном случае, придется немного попариться... Вообще решать данную проблему можно так: а) через матрицу (только единица матрицы по размерам должна быть МЕНЬШЕ размеров шара, т.е. шар включает в себя несколько единиц), если поле достаточно большое, то можно работать с битами, в результате чего размер матрицы сократится в 8 раз... Чем больше единиц будет в шаре, тем менее заметно будет вхождение друг в друга при столкновении... б) проверять координаты всех шаров, учитывая их радиус (или проще: вписать шары в квадрат, но при этом загрубление... (хотя можно сделать так: вписать шары в квадрат, а при проверке столкновений, в случае вхождения одного в другой проверять чем-нибудь вроде pixelcheck'а)). В данном случае лучше всего шары представлять в виде массива (как это сделано в примере). Мне вот другое интересно... Все это хорошо, я думаю, если посидеть немного, то можно сделать приемлемо... А вот хотел бы я на алгоритм Lemming'ов посмотреть... Ладно, пойду-ка я к лекции готовиться... P.S. Цитата Объект "1" движется вправо, объект "2" - влево. Через такт движения они оба должны были бы оказаться в точке по центру. Но по правилам игры вместо этого должно произойти взаимное отталкивание. Я вообще не понимаю, в чем проблема ? 000 102 000 Ну хорошо, предположим... Но шары-то двигаются НЕ ОДНОВРЕМЕННО - это же иллюзия... Тот шар, который в цикле имеет высший приоритет, просто запишет единицу в данную клетку ПЕРВЫМ, а второй, при проверке "свободна ли клетка дальше" получит -"нет" и, соответственно, должен будет оттолкнуться (а вот для того, чтобы и первый шар снизил скорость и поменял траекторию, надо чтобы второй "сообщил" ему об этом (я бы использовал массив указателей на шары, правда, при таком раскладе нужно еще идентифицировать нужный шар, но это тоже можно сделать). Вообще, такие штуки под DelphiX за пол-часа пишутся... -------------------- Все в жизни ботва... Кроме пчел!
|
VelarThind Супер бильярд 11.04.2005 23:38
Altair Вот этот пример думаю будет полезен. Код очень хор… 11.04.2005 23:58
mithquessir Светлик, вот нашел pdfник описания какой-то лабора… 12.04.2005 0:26
AlienEmperor А почему бы не представить игровое поле в виде мас… 12.04.2005 15:11
Бродяжник С матричным полем возможны такие траблы:
1. Шары н… 12.04.2005 17:21
AlienEmperor На самом деле я как раз недавно скидывал альфу игр… 12.04.2005 17:51
Atos 4. А если столкнутся больше двух шаров? :)
Сейч… 12.04.2005 18:04
Бродяжник AlienEmperor
Поделитесь алгоритмом - как нужно обр… 12.04.2005 19:49
VelarThind Тут ещё какой вопрос. Нужно то не просто их оттолк… 12.04.2005 21:18
volvo
Ребята, вы вопрос внимательно читали?
Мало ли ч… 13.04.2005 15:52
AlienEmperor Volvo, ну так я же не спорю... И вариант решения п… 13.04.2005 15:56
VelarThind Олег, спасибо за код, как раз то что нужно. Остало… 13.04.2005 16:15
Shura Процедура TurnAfterHit неправильная!!… 23.04.2005 0:00
Altair
А в чем заключается неправильность?
Втом, что не … 23.04.2005 0:11
Shura
Ну я ж привёл пример. Вот когда они в воздухе ста… 23.04.2005 0:22
Altair Если не нравится, исправь! 23.04.2005 0:26
Shura
Хех, так если я б знал как, я бы не спрашивал - я… 23.04.2005 0:42
Altair а понял :)
насчет неправильности...
l:=Arctan((y2-… 23.04.2005 0:49
Shura Да не - нам то в радианах потом и нужно будет. Это… 23.04.2005 0:58
-Aleks-
Да не - нам то в радианах потом и нужно будет. Эт… 21.01.2010 13:04
Archon Дак она и так под lazarus работает не плохо. Что п… 21.01.2010 14:34
TarasBer Для шаров одной массы при идеально упругом столкно… 21.01.2010 23:12![]() ![]() |
|
Текстовая версия | 8.11.2025 1:36 |