Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
195 - @
Сегодня, 22:26
 Mefistofel
195 - ?
7.10.2026
 PapkaI_Igrodel
194 - Numbers go brr…
20.09.2026
 PapkaI_Igrodel
Будущее IGDC
6.09.2026
 IAmNotARobot
194 - ?
27.08.2026
 PapkaI_Igrodel
193 - Bullet Heaven…
23.06.2026
 Dan
.ruby
9.06.2026
 stom
193 - ?
29.05.2026
 Piroxyline
192 - Lords of the B…
10.05.2026
 Mefistofel
Архив Neuh
6.04.2026
 PapkaI_Igrodel
Сейчас на сайте
Гостей: 1
На сайте нет зарегистрированных пользователей

Пользователей: 1,795
новичок: appscoproration
Обсуждение «120 - Bomberman II»
Страница 4 из 16 < 1 2 3 4 5 6 7 > >>
KeeperKira
Avatar пользователя

Опубликовано 12.03.2015 17:37 (12 лет назад)    #
А по каком принципу у тебя обработка коллизий происходит?

редакция от KeeperKira, 12.03.2015 17:38

Roguelike III:Не участвую.
KeeperKira
Avatar пользователя

Опубликовано 12.03.2015 17:41 (12 лет назад)    #
точнее запрет на проникание в стену
Roguelike III:Не участвую.
KEFIR
Администратор
Avatar пользователя

Опубликовано 12.03.2015 18:03 (12 лет назад)    #
Вот непосредственно код :) https://github.com/miriti/igdc120/blob/master/source/src/core/MapCollisionObject.js#L38
t это ячейка, с которой проверяется столкновение как с обычным AAB. this это объект который сталкивается :)
Вычисляется разность их положения по x и по y и если оба этих значения меньше чем сумма половин ширины и высоты соответственно, значит они сопрекасаются и потом если нужно (в случае с игроком и непроходимым тайлом нужно) отодвигаются в сторону меньшей разности.
Ну короче базовый алгоритм столкновений AAB :)
Roguelike III:Не участвую.
Shirson
Avatar пользователя

Опубликовано 12.03.2015 18:40 (12 лет назад)    #
KEFIR написал:
Но подожди, в пакмане совсем другая механика передвижения персонажа: он там без остановки двигается, а пользователь только задает направление в нужный момент. А тут персонаж двигается когда удержаны соответствующие клавиши направления + сам персонаж чуть меньше чем клетка, также как это в оригинале.

Это не мешает сделать принудительное движение персонажа в центр клетки :)
Даже наоборот - просто просится, особенно если он немного меньше клетки. Движение сразу станет аккуратнее.
Roguelike III:Не участвую.
Mefistofel
Инженер‑космогоник
Avatar пользователя

Опубликовано 12.03.2015 18:48 (12 лет назад)    #
KEFIR написал:
Так вот и как их срезать то? Я что-то не могу придумать.

На самом деле, если ты знаешь проверку и коррекцию(выталкивание) для AABB прямоугольников, двух кругов и круга с точкой(что в целом одно и то же - Пифагор наше все), то ты можешь сделать в произвольной комбинации фигуры нескольких разных форм, в том числе квадраты со скругленными углами. Конечно будет посложнее, чем по клеточкам, но было бы желание. По крайней мере гг можно сделать кружком или скруглить края стенок. Но мне кажется, что тут можно даже не заморачиваться и помогло бы скольжение вдоль стенок при движении по диагонали.
Roguelike III:Сдал!
Mefistofel
Инженер‑космогоник
Avatar пользователя

Опубликовано 12.03.2015 18:49 (12 лет назад)    #
Да, кстати, движение по клеточкам с промежуточной анимацией тоже прекрасный инструмент.
Roguelike III:Сдал!
KEFIR
Администратор
Avatar пользователя

Опубликовано 12.03.2015 19:08 (12 лет назад)    #
Интересненько. Спасибо за советы, может за ночь придет идеальное решение на основе всего этого :)

редакция от KEFIR, 12.03.2015 19:08

Roguelike III:Не участвую.
KeeperKira
Avatar пользователя

Опубликовано 12.03.2015 20:09 (12 лет назад)    #
В общем после отодвигания в сторону меньшей разности можно добавить ещё одну проверну. К какому из краёв стенки ближе объект и сделать сдвиг в ту сторону.

Тоесть давишь в верх, он входит в стену, его отталкивает назад, а потом ещё и отталкивает в сторону ближайшего прохода

как-то так

редакция от KeeperKira, 12.03.2015 20:12

Roguelike III:Не участвую.
KeeperKira
Avatar пользователя

Опубликовано 12.03.2015 20:21 (12 лет назад)    #


Игровой процесс ещё в начальной стадии развития.
Roguelike III:Не участвую.
Mefistofel
Инженер‑космогоник
Avatar пользователя

Опубликовано 12.03.2015 20:45 (12 лет назад)    #
Ну это мягкие стены получаются. Не правильно так, к тому же можно в стенку продавиться. Тогда уж эффективнее сделать круглого гг и честные коллизии для него. Правило пересечения для квадрата простое, 3 проверки.
Если центр круга находится в пределах квадрата по x или по y, то находится простой разницей расстояние до линии квадрата(по y и x соответственно) и выталкивается, если это расстояние меньше радиуса.
Если круг не в этой зоне - по теореме пифагора находится расстояние до точек углов, если меньше радиуса - выталкивается вдоль вектора от точки угла до центра круга.

Если сделать просто выталкивание, без физики, то на углах круглый гг будет потихоньку продавливаться - ты толкаешь его на угол, он в него влазиет, коллизии выталкивают его чуть в бок - получается такое обтесывание угла.
В то же время в коридоре поведение будет честное - круг упрется в стенку и будет стоять.
Roguelike III:Сдал!
pelmenka
Avatar пользователя

Опубликовано 12.03.2015 22:51 (12 лет назад)    #
Выложу и свою систему коллизий для теста. Пилю бомбы
Roguelike III:Не участвую.
KeeperKira
Avatar пользователя

Опубликовано 12.03.2015 23:18 (12 лет назад)    #
pelmenka,какой-то странный дребезг во время движения. Не знаю может это только у меня так. Но стены трясутся так что глаза вылазят.
Попробуй увеличить число свап слоёв.
Roguelike III:Не участвую.
pelmenka
Avatar пользователя

Опубликовано 13.03.2015 00:13 (12 лет назад)    #
Стены трясутся от того, что игрока выталкивает из стен. У меня еще есть версия где гг скачет от стен как шарик от пин понга
Roguelike III:Не участвую.
KEFIR
Администратор
Avatar пользователя

Опубликовано 13.03.2015 05:54 (12 лет назад)    #
KeeperKira, я смотрю у тебя движение гг сделанно именно так, как предлагает Darthman? Т.е. он двигается строго по тайлам?
Вообще сейчас я думаю что действительно нет особого смысла делать игрока меньше тайла, как это было в оригинале. Но сначала попробую сделать игрока кругом.
Roguelike III:Не участвую.
pelmenka
Avatar пользователя

Опубликовано 13.03.2015 06:26 (12 лет назад)    #
У меня в прошлом билде реализовано по тайлам. Но так возникнет проблема проверки столкновений с врагами, если захочется сделать динамичную игрулю
Roguelike III:Не участвую.
Darthman
Древний организм
Avatar пользователя

Опубликовано 13.03.2015 06:53 (12 лет назад)    #
С чего это вдруг оно возникнет? Ничего в проверке столкновений от этого не меняется
Roguelike III:Не участвую.
ZblCoder
Главный Говнюк
Avatar пользователя

Опубликовано 13.03.2015 06:55 (12 лет назад)    #
У меня странный вопрос, как вы писали игры до этого, если у вас возникли проблемы с такими вещами?

Мою реализацию коллизий круга и линий, можно посмотреть в конкурсной работе "Свет и Тьма" №85
Roguelike III:Не участвую.
pelmenka
Avatar пользователя

Опубликовано 13.03.2015 07:03 (12 лет назад)    #
С проскакиваниями вплотную к врагам я думаю могут быть проблемы при потайловом хождении
Roguelike III:Не участвую.
KEFIR
Администратор
Avatar пользователя

Опубликовано 13.03.2015 08:08 (12 лет назад)    #
ZblCoder написал:
У меня странный вопрос, как вы писали игры до этого, если у вас возникли проблемы с такими вещами?

Мою реализацию коллизий круга и линий, можно посмотреть в конкурсной работе "Свет и Тьма" №85

Но причем тут круг и линия вообще?
Да и проблема то не в том, как это сделать вообще, а как сделать лучше и отзывчивее для игрока.
Сейчас стало ясно что обычный AAB не очень походит для такой игры, значит попробую что-то еще.
Roguelike III:Не участвую.
Mefistofel
Инженер‑космогоник
Avatar пользователя

Опубликовано 13.03.2015 08:20 (12 лет назад)    #
Круг и линия - частный случай прямоугольника и круга. На ее основе можно половину физики построить.
Roguelike III:Сдал!
Страница 4 из 16 < 1 2 3 4 5 6 7 > >>
Перейти на форум:
Конкурсы
Открытые конкурсы:
Roguelike III
Подведение результатов...

Старт: 9 октября 2026г.
Финиш: 26 октября 2026г.

Участники: 4
Недавние конкурсы:
 №194 - Numbers go brrr
 №193 - Bullet Heaven II
 №192 - Lords of the Board
 №191 - RPG XIIII
 №190 - Horror
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

30,897,425 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.