Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как сделать столкновения шара в 2Д лабиринте? Жел. с разноугольными или кргл. стенами

11K
11 июня 2005 года
rubilon
6 / / 05.06.2005
Как сделать столкновения шарика в 2Д лабиринте? Желательно с разноугольными или закруглёнными стенами. В крайнем случае со стенами однообразными квадратами (это сделал, только не оч хорошо)
Я делаю на флэше, там можно проверять совпадения точки Х,У с объектами любой формы.
Где можно инфо найти для этой задачи. Или можт кто поможет с формулами?
А, да - игры у меня крутые! Для хорошего дела помощь нужна.
3.3K
12 июня 2005 года
GENA_DJ
123 / / 08.03.2005
Цитата:
Originally posted by rubilon
Как сделать столкновения шарика в 2Д лабиринте? Желательно с разноугольными или закруглёнными стенами. В крайнем случае со стенами однообразными квадратами (это сделал, только не оч хорошо)
Я делаю на флэше, там можно проверять совпадения точки Х,У с объектами любой формы.
Где можно инфо найти для этой задачи. Или можт кто поможет с формулами?
А, да - игры у меня крутые! Для хорошего дела помощь нужна.


Если считать шар материальной точкой и пренебрегать потерей энегрии при столкновении со стенками, то можно сильно не заморачиваться. Ищещь пормаль к стенке в точке касания, нормальная составляющая скорости меняет знак, а касательная сохраняется. То есть, угол падения углу отрадения равен и по абсолютной величине скорость сохраняется. Но это выглядит на экране не круто, надо сказать. Для того, чтобы решить задачу в общем случае, скачай и прочитай Сивухина, том 1, Механика.

Где можно посмотреть на твои игрухи?

1.7K
12 июня 2005 года
Envel
206 / / 29.11.2004
Цитата:
Originally posted by rubilon
Как сделать столкновения шарика в 2Д лабиринте? Желательно с разноугольными или закруглёнными стенами. В крайнем случае со стенами однообразными квадратами (это сделал, только не оч хорошо)
Я делаю на флэше, там можно проверять совпадения точки Х,У с объектами любой формы.
Где можно инфо найти для этой задачи. Или можт кто поможет с формулами?
А, да - игры у меня крутые! Для хорошего дела помощь нужна.


Если предположить, что шар абсолютно упругий, то скорости падения и отражения от стены равны. Угол падения, как известно, равен углу отражения не только для электромагнитных волн (в случае волн имеет место еще и поглощение). Делаем так: строим нормаль к поверхности в точке касания шара (считаем шар бесконечно малого диаметра или поверхность плоской в окрестности точки касания), проводим через точку касания (предполагаемую) и точку местонахождения шара прямую. Строим ее отражение от нормали, как от зеркала. Результирующая прямая, проходящая через точку соударения и имеющая с нормалью такой же угол, что и угол между траекторией до соударения и той же нормалью.
Если шар не абсолютно упругий, то часть его энергии перейдет поверхности, его скорость после соударения несколько уменьшится. Потом напишу по какому закону. Пока можно просто уменьшить его скорость, скажем, на 10%. Если поверхность не плоская, то будет несколько точек касания, несколько (множество) нормалей. Результирующей траекторией будет прямая, направляющий вектор которой равен сумме векторов, являющихся направляющими для траекторий отражения по каждой из нормалей.

11K
12 июня 2005 года
rubilon
6 / / 05.06.2005
Цитата:
Originally posted by GENA_DJ

Где можно посмотреть на твои игрухи?


Игры смотри на моём сайте http://www.rubilon.kulichki.com/
Я в физике и механике ничего не знаю. В принципе на самом примитивном уровне я задачу уже решил(Смотри игру Рамбл Болл поле 2). Сейчас делаю 3е поле. Добавил силу удара и всякие глюки стали заметнее.
Задача для меня сложна в том, что шар большой и он должен отражатся не с углом падения=отражения при скользящем ударе об угол(или тоже?). Т.е у него много точек касания. А стены не прямые. Они с углами. Глюки при ударах об выпуклые углы. Кроме того шар не должен въезжать в стену. Я пишу что-то типа пока Х+10,У совпадает со стеной Х--. И так для всех сторон. 8м точек.
Что-такое векторы и т.п. я не знаю. Я использовал флэш пример, где божья коровка бежит за курсором. Т.е. у меня угол и скорость 0 или больше. Есть и ещё нюансы именно для этой игры. При прямом ударе шар должен иметь возможность сбивать 2 кирпича, как в арканойде. И хотя точка касания одна, данное условие необходимо для гейплея.

1.7K
12 июня 2005 года
Envel
206 / / 29.11.2004
Цитата:
Originally posted by rubilon
Игры смотри на моём сайте http://www.rubilon.kulichki.com/
Я в физике и механике ничего не знаю. В принципе на самом примитивном уровне я задачу уже решил(Смотри игру Рамбл Болл поле 2). Сейчас делаю 3е поле. Добавил силу удара и всякие глюки стали заметнее.
Задача для меня сложна в том, что шар большой и он должен отражатся не с углом падения=отражения при скользящем ударе об угол(или тоже?). Т.е у него много точек касания. А стены не прямые. Они с углами. Глюки при ударах об выпуклые углы. Кроме того шар не должен въезжать в стену. Я пишу что-то типа пока Х+10,У совпадает со стеной Х--. И так для всех сторон. 8м точек.
Что-такое векторы и т.п. я не знаю. Я использовал флэш пример, где божья коровка бежит за курсором. Т.е. у меня угол и скорость 0 или больше. Есть и ещё нюансы именно для этой игры. При прямом ударе шар должен иметь возможность сбивать 2 кирпича, как в арканойде. И хотя точка касания одна, данное условие необходимо для гейплея.


Если ты не знаешь, что такое вектор, с какой стати вообще swf занимаешься???
Либо ты школьник, либо - учись. Больше ничего сделать не сможем.
Игры - это очень много математики.

11K
12 июня 2005 года
rubilon
6 / / 05.06.2005
Цитата:
Originally posted by Envel
Если ты не знаешь, что такое вектор, с какой стати вообще swf занимаешься???
Либо ты школьник, либо - учись. Больше ничего сделать не сможем.
Игры - это очень много математики.


Какой я школьник :) мне 23
swf я очень удачно занимаюсь. Сделанные игры достаточно популярны. А что я математику плохо знаю и физику, это да. Но я учусь. Поэтому и обращаюсь.
Что такое вектор я понимаю - это направление движения. Но как это математически воплощать не знаю. Надобности не было.
Я вобще-то планировал быть организатором. Т.е. чтоб я занимался идеей, основой дизайна и др. общими вопросами. Но вначале надо сделать что-то самому, чтоб можно было что показать.
Посмотри игрухи мои, они считаются оч. хорошими флэш.

11K
12 июня 2005 года
rubilon
6 / / 05.06.2005
А вообще Envel: Раз уж ты из Питера, то можт поможешь добротно такую задачу на флэше сделать? Я б тебе рублей 500 заплатил.
Я делаю оригинальную версию этой игрухи для одной конторы USА т.е. специальная часть для них. А потом я для себя это использую.
1.7K
12 июня 2005 года
Envel
206 / / 29.11.2004
Цитата:
Originally posted by rubilon
А вообще Envel: Раз уж ты из Питера, то можт поможешь добротно такую задачу на флэше сделать? Я б тебе рублей 500 заплатил.
Я делаю оригинальную версию этой игрухи для одной конторы USА т.е. специальная часть для них. А потом я для себя это использую.


ICQ 304678933 стукни. Посмотрим, что можно сделать. Единственное НО, это то, что я до 17.06 занят (сессия), поэтому свободен, наверное, только по вечерам. После 17-ого и до конца июня - свободен. С flash я почти не знаком, поэтому смогу помочь только алгоритмом в виде схемы.

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

11K
12 июня 2005 года
rubilon
6 / / 05.06.2005
Цитата:
Originally posted by Envel
Если шар ударяется об угол, то нормаль будет равна сумме нормалей от каждой прямой, проходящей через эту точку. Правда, шар уже нельзя считать материальной точкой: в зависимости от направления нормали к вектору начальной скорости, шар будет закручиваться вокруг своей оси и его скорость после отражения от угла значительно уменьшится (все зависит от размеров и упругости шара). Здесь уже энергитические законы нужно использовать.


Закручивания будет слишком. Шар не имеет упругости. Т.е. ударяется без потери энергии, но скорость его замедляется сама по себе. Я ударяю шар с силой=сколько я держал кнопку мыши и<10. Потом шар катается пока скорость не упадёт до 0, потом опять бёшь.
Аську я ещё не установил и никогда ей не пользовался. Думаю там разобратся можно будет легко. А вообще можно былоб и созвонится.
Гы. А делать крутые движки надо и в 2Д.

319
12 июня 2005 года
xelos
577 / / 27.02.2003
Цитата:
Originally posted by rubilon
Закручивания будет слишком. Шар не имеет упругости. Т.е. ударяется без потери энергии, но скорость его замедляется сама по себе. Я ударяю шар с силой=сколько я держал кнопку мыши и<10. Потом шар катается пока скорость не упадёт до 0, потом опять бёшь.
Аську я ещё не установил и никогда ей не пользовался. Думаю там разобратся можно будет легко. А вообще можно былоб и созвонится.
Гы. А делать крутые движки надо и в 2Д.


если все же потребуется точная механика для модели, в 18 веке Кориолис написал замечательный труд - "Механика бильярда", там про движение шара на плоскости просто отлично все описано. На русском я этого издания не видел, но аглицкую версию найти можно.

255
13 июня 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by rubilon
Закручивания будет слишком. Шар не имеет упругости. Т.е. ударяется без потери энергии, но скорость его замедляется сама по себе. Я ударяю шар с силой=сколько я держал кнопку мыши и<10. Потом шар катается пока скорость не упадёт до 0, потом опять бёшь.
Аську я ещё не установил и никогда ей не пользовался. Думаю там разобратся можно будет легко. А вообще можно былоб и созвонится.
Гы. А делать крутые движки надо и в 2Д.


Если без закручивания, то и простейшая модель сойдет. То что у тебя шарик большой в этом случае не будет играть роли. Скользящий удар получится когда скорость шара маленькая и его угол с нормалью будет близок к 90 градусам. Но если правильно реализовать общий случай, то все должно получиться...
И точек касания у шара и прямой не может быть много. Это я так, экскурс в геометрию. Много может быть только точек пересечения. Но у тебя ведь учитываюются столкновения.

1.7K
13 июня 2005 года
Envel
206 / / 29.11.2004
Цитата:
Originally posted by Dart Bobr

И точек касания у шара и прямой не может быть много. Это я так, экскурс в геометрию. Много может быть только точек пересечения. Но у тебя ведь учитываюются столкновения.


Точек касания у круга и прямой может быть только одна :) Если шар - абсолютно твердое и абсолютно упругое тело - это верно. Если это не так - образуется площадка смятия, все значительно усложняется. Для шара и плоскости это будет круг, для шара и пространственного угла - что-то вроде пирамиды.

255
13 июня 2005 года
Dart Bobr
1.4K / / 09.04.2004
Цитата:
Originally posted by Envel
Точек касания у круга и прямой может быть только одна :) Если шар - абсолютно твердое и абсолютно упругое тело - это верно. Если это не так - образуется площадка смятия, все значительно усложняется. Для шара и плоскости это будет круг, для шара и пространственного угла - что-то вроде пирамиды.


Ага!:) А кто здесь говорил про упругие шарики?:???:

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог