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