Привет Может есть кто из геймдизов тут, таккова задача. В игре процедурно генерированные подземелья, нужно в конце начислять очки и учитывать время за которое игрок прошел данж. Вопрос нужна формула зависимости очков от времени прохождения уровня, чем меньше затрачено времени на прохождения , тем больше начисляется очков. единственное, что мне пришло в голову - это для каждого уровня добавить среднее время необходимое на его прохождение и от этого времени уже отталкиваться
Можно запустить таймер в самом начале уровня. И при финишном событии ставим следующие условия: скажем если натикало 60 сек или больше - дать 2 очка, 50 - 40 сек - 5 очков, и т.д. Если не определенное количество очков нужно, а прямая зависимость от времени, то так же оперируешь с значением таймера, запущенного вначале.
Сообщение отредактировал Kzunec - Воскресенье, 27 Августа 2017, 17:25
Можно запустить таймер в самом начале уровня. И при финишном событии ставим следующие условия: скажем если натикало 60 сек или больше - дать 2 очка, 50 - 40 сек - 5 очков, и т.д. Если не определенное количество очков нужно, а прямая зависимость от времени, то так же оперируешь с значением таймера, запущенного вначале.
Я так и делаю ) У меня так для каждого уровня я в ручную устанавливаю некое среднее значение скорости прохождения уровня, а потом когда получаю значения игроков, перевожу уже в очки. Я думал может есть какая то формула, что бы все одной строкой сделать
А если сделать что-то такое? Для уровня устанавливаешь максимальное кол-во очков. Так же для уровня устанавливаешь сложность: легко, средне, сложно. %max_score% - максимальное кол-во очков. %time% - время прохождения в секундах. %difficult% - сложность (лёгко 1, средне 2, сложно 3)
Формула: %max_score% - (%time% / %difficult%)
Возьмём уровень, средней сложности, максимум 1000 очков. Игрок прошёл за 120 сек.
beril, Привет. Конечно, можно было бы по-больше информации о уровнях, но я исходил из того, что уровни генерируются клетками и с противниками, плюс присутствует сложность игры. Конечно, не идеально, но все же Все переменные берутся при создании уровня, так что вводить отдельно ничего не нужно.
Код
x - количество противников (шт.) xk - убито противников (шт.) y - кол-во клеток, где можно ходить (шт.) yk - пройдено клеток (шт.) d - сложность уровня (я брал 1, 2, 3) t - время прохождения, в секундах
А если сделать что-то такое? Для уровня устанавливаешь максимальное кол-во очков. Так же для уровня устанавливаешь сложность: легко, средне, сложно. %max_score% - максимальное кол-во очков. %time% - время прохождения в секундах. %difficult% - сложность (лёгко 1, средне 2, сложно 3)
Формула: %max_score% - (%time% / %difficult%)
Возьмём уровень, средней сложности, максимум 1000 очков. Игрок прошёл за 120 сек.
Да, у меня как раз нечто подобное сейчас. Видать это лучший вариант) Всем спс за внимание, походу оставлю все как есть
Можно взять переменную за сутки, то есть 24 часа. Посчитать сколько очков выходит за 1сек до 24ч. И уже в зависимости от прохождения, вычислять из количества очков за сутки, очки за пройденное время. 24 часа = 86400с. 10000 очков = 86400с. 86400 / 10000 = 8 очков за секунду. Уровень был пройден за 35 секунд. 35 секунд = 35*8 = 280 очков. 10000 - 280 = 9720 очков игрок получит за 35 секунд прохождения. Опираться отсюда уже следует не на среднее время прохождения за уровень, а относительно всей дневной ставки. Тут еще можно пару вычислений добавить, но это уже зависит от конкретной задачи Кубариум Rise of the dark lords
Сообщение отредактировал Эргалон - Понедельник, 28 Августа 2017, 15:16