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

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

Пароль



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

Забыли пароль?
Запросите новый здесь.
Темы форума
185 - RPG
9.02.2024
 Vaskrol
В каком банке открыт…
24.01.2024
 Darthman
185 - ?
30.12.2023
 Mefistofel
TESTAMENT - Тактичес…
15.11.2023
 KregHek
WoL
13.10.2023
 Darthman
RES - Движок для пик…
27.09.2023
 rimush
177 - One Button Str…
20.09.2023
 VoroneTZ
JS 13k contest
13.09.2023
 Mefistofel
184 - Arcade II
14.08.2023
 tiger1025
184 - ?
14.07.2023
 Kaps
Сейчас на сайте
Гостей: 3
На сайте нет зарегистрированных пользователей

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

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

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

KeeperKira
Avatar пользователя

Опубликовано 12.03.2015 17:41 (9 лет назад)    #
точнее запрет на проникание в стену
KEFIR
Avatar пользователя

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

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

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

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

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

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

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

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

KeeperKira
Avatar пользователя

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

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

как-то так

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

KeeperKira
Avatar пользователя

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Опубликовано 13.03.2015 08:20 (9 лет назад)    #
Круг и линия - частный случай прямоугольника и круга. На ее основе можно половину физики построить.
Страница 4 из 16 < 1 2 3 4 5 6 7 > >>
Перейти на форум:
Конкурсы
Открытые конкурсы:
Активных нет
Недавние конкурсы:
 185 - RPG XII
 184 - Arcade II
 183 - Novel
 182 - RPG XI
 181 - Pixel Craft 128
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

25,321,328 уникальных посетителей

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