Переход между локациями заработал
Сегодня Дейв научился уходить в другие локации 🙂
Блог разработчика
Недавно в эмуле GIDа появились «Точки остановки с условиями» — можно задать условие остановки, когда, к примеру, произойдет обращение к интересующей ячейке памяти по чтению или записи (на выбор). Крутая штука! Благодаря ей я нашел сейчас причину одного из глюков — время от времени скролл экрана уезжал неведомо куда. Оказалось, причина была в неверном развороте Дейва в падении. Эта процедура была расчитана на первоначальный вариант падения, а этих вариантов уже стало четыре. Как обычно возникает вопрос — как оно вообще работало? 🙂
GIDу огромное спасибо за шикарный инструмент разработки и отладки!
Итак, я добавил проверки на горизонтальные препятствия, коррекцию «полетов» при столкновении с этими препятствиями. Теперь Дейв уже не проходит сквозь стены и не пролетает. Поправил свойства некоторых объектов. Вообще, прикольный механизм придумали Ромеро с Кармаком, конечно, для обработки обстановки — у каждого тайла есть свойства «можно пройти объект справо налево», «можно пройти объект сверху вниз» и т.д. Обработка столкновений проще при этом. Но зато приходится эти свойства обдумывать и назначать.
В целом, Дейв стал двигаться уже похоже. Теперь надо с длиной и высотой этих прыжков разобраться, чтобы не прыгал слишком далеко. И можно переходить к стрельбе!
Сделал коррекцию приземления, добавил вертикальное перемещение Дейва по лабиринту, добавил прыжки на ходу. Похоже, прыжки слишком дальнобойные, надо свериться с оригиналом. Теперь Дейв полноценно перемещается, буду добавлять обнаружение стен, потолков и прочей мебели.
Собрал анимацию и механизм прыжков, а также переделал анимацию бега. Прыжки управляемые, как и положено в Дейве — на лету можно повернуть в другую сторону, уж не знаю, что за физика такая 🙂 Анимация работает успешно, теперь надо проверить, получаются ли при прыжках такие же расстояния в длину, как в оригинале. А потом можно и обстановку задействовать — пора побродить по этажам 🙂
Сегодня Дейв перешел на новый уровень — это уже не разрозненные демки, а заработавший движок. Первые движения — разворот на месте и бег вправо-влево. Управление обрабатывается от джойстика и клавы. После того, как Дейв побежал по экрану, я попробовал добавить и горизонтальный скроллинг. Он заработал, но нужно регулировать зону «люфта», а также хитро менять смещения спрайтов Дейва, когда двигается слой фона, чтобы этот самый Дейв не дергался. Но главное, что он теперь управляется и готов учиться новым движениям!
Помнится, мы называли ее так. Добавил анимацию ее движений и прыжков. Пока я изучал ее поведение, стало понятно, что для нее надо будет делать такой же алгоритм просчета, как и для полета пули под углом 45 градусов.
Для красоты загрузил в третий слой экрана картинку с лабиринтом, но пока это только обои, хотя и сформированные моей же программой вывода лабиринта. Бабуля ходит в среднем слое, так что никакого фона не запоминается, спрайт просто стирается черным квадратом. Выводится тоже простым MOV, без всяких BIS и масок. Все делает «слоеный» режим экрана AZ. Для устранения мигания спрайта используется две области памяти в качестве экранных страниц, попеременно включаемых в качестве среднего слоя экрана. В AZ можно любую область памяти использовать как экранную страницу. И в итоге бабуля бегает, спрайт не мигает, фон не затирается:
Свежие комментарии