эт понятно, но на Спеке миди нет
---------- Post added at 18:17 ---------- Previous post was at 18:15 ----------
на РС и Doom можно запустить :)
Вид для печати
миди наверное можно в мод переделать?
на амиге должны быть конверторы
Давай, классно было бы. Лабиринт 128х128. Когда формируется матрица, уже сразу надо наносить стены, колонны и барьеры. А врагов и аптечки - после окончания формирования, на свободные клетки.
Поля 15х15 вокруг игрока. Враг может стрелять только прямо по вертикали, горизонтали или диагонали с игроком, и если между ним и игроком нет стен или колонн (через барьеры стрелять может, хотя возможно это уберу, т.к. барьеры высокие). С остальных клеток враг стрелять не может. Поэтому он смещается на ближайшую клетку, откуда можно стрелять.
нуу вообще конечно лабиринт то получается 127 на 127 :) или даже 125 на 125 без учета внешних стен
кстати зачем такой большой
может всетаки поменьше?
что то вроде 96*96 - выше крыши
вон в ЧВ вообще карта 64*64
и есть пара идей относительно рендера изображения - будет ускорение но надо тогда тебе будет перепахать большой кусок программы
Движок предусматривает лабиринт с горизонтальной стороной 128. Так легче считать адреса клеток. Границы лабиринта ессно все огорожены внешними стенами, так что 126х126. Вертикальная сторона может быть любой. Можно уменьшить, но не в ущерб интересности и сложности игры, чтобы под спрайты больше места оставить.
В ЧВ не лабиринт, а карта местности.
Если спрайты не менять и память еще больше не транжирить, то можно. Хотя, с другой стороны, побыстрее охота эту игру закончить и начать новую писать. :)
---------- Post added at 22:36 ---------- Previous post was at 20:37 ----------
Сейчас вставляю трупы, вроде нормально получается.
Но пока еще есть ошибки с выводом спрайтов (всех), необъяснимые пропадания изображения в некоторых знакоместах, хотя должны работать в них маски. Буду ковырять в отладчике.
---------- Post added at 23:13 ---------- Previous post was at 22:36 ----------
Нашел! Досаднейшую ошибку. Оказывается, подпрограммы получения автомасок для значения 0 дают 0, а должны 255! Так что, исправил.
Еще кое-где неправильно в спрайтах заданы параметры краевых знакомест. Это уже в 3D-View надо подрегулировать.
а просто скипать нулевые байты?
итак вот генератор
сначала создает 127 на 127(128) т.е требует 16256 памяти
потом высушивает соответственно до нужного вида (в 1 байте 2 элемента)
естественно никаких лишних элементов не добавляет :) тут уж извини
смотри разбирай спрашивай
спасибо. Завтра буду смотреть.
Насчет еще более быстрого вывода сцены думал.
Можно подумать над тем, чтобы хранить в спрайтах не координаты знакоместа, а сразу адрес вывода на экране первого байта знакоместа. Тогда не нужно каждый раз его высчитывать. Правда, в этих же двух байтах я храню параметр - краевое это знакоместо спрайта или нет, и если краевое, то какое - правое или левое. Можно как-то это продумать, чтобы вместе с адресом хранить (можно не адрес, а хотя бы смещение от какого-то адреса, например, начала экрана, тогда два бита будут по-прежнему свободны для краевых параметров).
Еще думал, хранить "слои" экрана - у меня 7 уровней вглубь, следовательно, 7 слоев для перспективы 90 градусов и 7 слоев для перспективы 45 градусов. Причем не весь экран, а только четверть, т.к. остальные 3/4 можно получать отзеркаливанием. В слое хранятся для каждого знакоместа байты изображения каждого элемента (15 элементов - стены, колонны, бассейны, трупы, фазы врагов и т.д.). Т.е. спрайты вообще не нужны, а всё хранится в этих слоях, которые быстро можно вывести. Но всё это занимает в памяти очень много места, пока не придумал, как сократить размер.