|
16 / 16 / 6
Регистрация: 04.03.2014
Сообщений: 160
|
||||||
Проверка на столкновение08.06.2014, 12:42. Показов 3613. Ответов 23
Метки нет (Все метки)
Есть массив со списком объектов на сцене. При нажатии стрелок, эти объекты двигаются, создавая перемещение. В центре сцены есть объект - игрок. Его координаты остаются неизменны, т.к он не входит в массив, а стоит на месте, но при этом ощущение что он движется.
0
|
||||||
| 08.06.2014, 12:42 | |
|
Ответы с готовыми решениями:
23
Проверка на столкновение Проверка на столкновение Проверка на столкновение кнопок |
|
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
|
|
| 08.06.2014, 12:58 | |
|
Расскажите подробнее, как у Вас стены двигаются, как Вы определяете, что сейчас нужно вывести стену?
0
|
|
|
16 / 16 / 6
Регистрация: 04.03.2014
Сообщений: 160
|
||||||
| 08.06.2014, 13:25 [ТС] | ||||||
platform_obj - массив с остальными объектами не относящиеся к стенам.
0
|
||||||
|
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
|
|
| 08.06.2014, 13:46 | |
|
аааа... я немного вопроса не понял. Подумал, что Вы спрашиваете, как столкновения проверять...
А чтобы не проходил через стены, Вам первым делом нужно "выталкнуть" персонажа из стены ( бывает так, что персонаж находит на стену ), а потом остановить перемещение стен.
0
|
|
|
16 / 16 / 6
Регистрация: 04.03.2014
Сообщений: 160
|
|||||||||||
| 08.06.2014, 13:57 [ТС] | |||||||||||
0
|
|||||||||||
|
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
|
|
| 08.06.2014, 14:14 | |
|
Тут нужно больше подробностей, так-как вариантов решения очень много и почти все они очень простые,
но призваны решать разные задачи. У Вас стены все прямоугольные? Проверку нужно делать на пересечение только со стенами или ещё полом и потолком?
0
|
|
|
16 / 16 / 6
Регистрация: 04.03.2014
Сообщений: 160
|
|
| 08.06.2014, 14:25 [ТС] | |
|
Стены прямоугольные, квадратные. Проверку надо делать только на пересечение со стенами
0
|
|
|
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
|
|
| 08.06.2014, 14:29 | |
|
Сейчас сделаю минимальный пример...
Добавлено через 3 минуты Только ещё один вопрос - пол прямой или есть под углом? Если есть участки пола под углом, то существуют места, где косой пол упирается в стену?
0
|
|
|
16 / 16 / 6
Регистрация: 04.03.2014
Сообщений: 160
|
|
| 08.06.2014, 14:39 [ТС] | |
|
Так думаю будет показательней))
0
|
|
|
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
|
|
| 08.06.2014, 18:26 | |
|
Оказалось сложнее чем я себе представлял
Точнее сказать я не ожидал вид сверху ![]() Но у меня получилось, правда я бы так делать не стал, но для понимания подойдет. Только ещё чуток подумаю и покажу.
0
|
|
|
16 / 16 / 6
Регистрация: 04.03.2014
Сообщений: 160
|
|
| 08.06.2014, 18:36 [ТС] | |
|
Хорошо, я и сам уже тучу способов перепробовал, надо как-то запретить двигать платформу, если игрок намеренно упирается в стену, а вот как реализовать я что-то не представляю))
0
|
|
|
254 / 238 / 50
Регистрация: 20.12.2011
Сообщений: 707
|
|
| 09.06.2014, 00:10 | |
|
Как вариант - при столкновении проверяем координаты x и y персонажа и стены. В том случае, если координаты x стены меньше координаты x персонажа - запрещает только движение налево, если x стены больше х персонажа - запрещаем движение направо. Аналогично для y.
0
|
|
|
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
|
|
| 09.06.2014, 00:19 | |
|
MrDead, я не буду Вам пример делать
То что я сделал, когда сказал о еще немного времени, сделал неправильно, не учел, что есть стены, которые находятся внутри коробки. И так же я опять забыл о том, что у Вас фон двигается, а не персонаж. Как только я это понял, я немного отвлёкся на другие дела и как раз думал. Сел и сделал контейнер, в который помещается прямоугольный предмет и создаются опорные точки, которые вертятся вместе с объектами и по которым уже и проверяют столкновения. Сделал контроллер стен и героя. Все что мне осталось, это нарисовать четыре стены для коробки и ещё одну поместить в саму коробку и испробовать, хотя я знаю что получится. В общем, я хоть и сказал не буду делать пример, но пока писал, подумал, что ведь обещал... По этому у меня к Вам вопрос - собираетесь ли Вы и в будущем делать игры и обязательно ли Вам нужно сделать эту игру самому? Объясню к чему эти вопросы - есть замечательный, ЛУЧШИЙ физический движок Nape, это предел физики! И если Вы собираетесь и дальше делать, то учите лучше его, пользы будет больше. Если Вы хотите сами свё сделать с целью самообразования, то я скажу так - если Вы с лёгкостью можете находить косинусы и синусы без класса Math и умеете управлять векторным пространством, то мой пример может послужить неким пособием... Но если нет, то он обяжет Вас учить все с нуля и потратить на это месяц-другой, за чтением литературы по векторной алгебре-геометрии. И не подумайте что я Вас пугаю, говорю я это по тому, что после того, как я доделаю пример, Вам самим придется проделать титанический труд. Оптимизировать код ( я скажу что нужно сделать ), наладить иерархию отображения ( если проверять с сотнями стен в массиве 60 раз за кадр, то все упадет, нужно будет придумать и сделать так, чтобы проверялось только с тем, что находится в списке отображения ). И делать все это за Вас я не буду, так-как займет это пару дней и по сути это будет микро-физический движок для игр вида сверху. В Nape это уже все есть... Вот... Вы не пугайтесь, и если Вам нужно и есть желание учится, то скажите и я доделаю. Тем более что делать там осталось пару часов. Если честно то я такое давно не делал и признаться честно немного подзабыл, но для меня это было полезно. Добавлено через 7 минут Theoryofgames, персонаж двигается на 360 градусов стоя всегда в центре. Стены не только коробка, а еще и везде. И получается, что персонаж может боком подойти к стене, а может и стена боком под глом зайти ![]() Нативные проверки тут не подходят.. Хотя, вот сейчас я подумал и мне кажется, что если оставить мой контейнер с точками и отказаться от своей идеи, где я хотел каждую точку проверять на принадлежность к выпуклым многоугольникам, то скорее всего hitTestPoint победит....
1
|
|
|
16 / 16 / 6
Регистрация: 04.03.2014
Сообщений: 160
|
|
| 09.06.2014, 00:54 [ТС] | |
|
bus, Да, мне это нужно и желание есть. Буду благодарен за оказанную помощь)
1
|
|
|
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
|
|
| 09.06.2014, 01:07 | |
|
Завтра обязательно в перерывах сделаю. До завтра!
0
|
|
|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
|||
| 09.06.2014, 09:04 | |||
|
Допустим стены и пр. окружение генерируется программно (судя по тому, что ТС проверяет каждую стену отдельно это может соответствовать истине). Даже не важно что и как, важно, что бы был массив объектов с известными координатами. Пусть это будут ячейки с координатами и параметром занято/свободно. Соответственно при движении персонажа в какую-то сторону мы знаем в какую ячейку он может перейти (при движении по диагонали это 2 ячейки). В результате нам необходимо проверить максимум 2 ячейке,а не перелопачивать их целый массив. Это гораздо проще. Даже если реализовано не совсем так - к такому положению можно все равно свести, при этом пусть не будет у нас 1-2-х ячеек, но их все равно будет гораздо меньше, чем все. А вот стены относительно сцены движутся или персонаж - это вопрос исключительно отображения.
0
|
|||
|
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
|
|
| 09.06.2014, 20:19 | |
|
MrDead, жутко извиняюсь за неоправданные надежды, но я лучше признаю, что у меня не получается,
чем буду продолжать делать монстра. И дело не в том, что не получается, а в том, что я не могу делать неправильно! Мне это совесть не позволяет. Послушайте TanaTiX'а, он полностью прав! Мой вариант только время Ваше потратит и мои нервы, так-как я его делаю, а у меня сразу в голове включается, что делаю я неправильно. Нельзя Ваш пример как пример, я делаю его и понимаю, что если сделаю "на отстань", то он Вам все сознание поломает. А если делать как нужно, то я понимаю, что у меня время на это нет, так-как вчерашний пример на 4 точках не работает, на поворотах проваливается. на 8, тоже! Их нужно сделать минимум 12 на квадрат, а это, как уже сказали, извращение. Добавлено через 3 часа 41 минуту Все не как не могу забыть и в очередной нападок мыслей, когда начал оправдывать себя, то понял, что даже в совете допустил ошибку! Не тайлы, а графы! TanaTiX, я никогда не работал с графами, точнее, в самом начале делал что-то невнятное... Посоветуйте лучшие по Вашему мнению статьи и готовые решения, чтобы изнутри посмотреть на них.
0
|
|
|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
|
| 09.06.2014, 20:26 | |
|
bus, почему все нужно сводить к графам? Чем тайлы не устраивают? А на счет статей, так я такие ссылки не храню. Когда-то читал в интернетах, общую мысль запомнил, а дальше самостоятельно.
0
|
|
|
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
|
|
| 09.06.2014, 20:48 | |
|
TanaTiX, а это разные вещи?) Графы, это математические классы, к которым привязывают виды и уже дальше с ними работают.. Они помогают в поиске путей, сортировке видов и возможно ещё и ещё чего-то.
Но что тогда такое тайлы? Вот на сколько я на сейчас могу себе объяснить понятие тайл, то это всего лишь квадратик пикселей, рисунок. Если исходить из ещё большей фантазии, то весь игровой мир поделен на кусочки-тайлы... Но ведь тайлы это же рисунки, как ими можно считать? Чего я пока не знаю?
0
|
|
|
Модератор
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
|
|
| 09.06.2014, 21:55 | |
|
bus, тайлы удобно представить как пиксели - т.е. прямоугольные области. При этом рядом с пикселем с координатами (0,0) будут пиксели с координатами (0,1) и (1,0). Т.е. имеем четкую пространственную структуру. Касательно графов (на сколько я знаю, т.к. реально с ними работать и не приходилось), то их соседи могут отличаться, как количество соседей, так и условное расстояние до них, в то время как в случае с тайлами расстояние между ними постоянно.
Описание графа на вики. Там еще картинка наглядная
0
|
|
| 09.06.2014, 21:55 | |
|
Помогаю со студенческими работами здесь
20
Столкновение Столкновение столкновение Столкновение Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|