Category: Блог

16
Мар
2024

Начинаем открывать двери

Интересный прикол в оригинале — алмаз появляется раньше, чем открывается сама дверь:

 

15
Мар
2024

Уже похоже!

Недавно в эмуле GIDа появились «Точки остановки с условиями» — можно задать условие остановки, когда, к примеру, произойдет обращение к интересующей ячейке памяти по чтению или записи (на выбор). Крутая штука! Благодаря ей я нашел сейчас причину одного из глюков — время от времени скролл экрана уезжал неведомо куда. Оказалось, причина была в неверном развороте Дейва в падении. Эта процедура была расчитана на первоначальный вариант падения, а этих вариантов уже стало четыре. Как обычно возникает вопрос — как оно вообще работало? 🙂

GIDу огромное спасибо за шикарный инструмент разработки и отладки!

Итак, я добавил проверки на горизонтальные препятствия, коррекцию «полетов» при столкновении с этими препятствиями. Теперь Дейв уже не проходит сквозь стены и не пролетает. Поправил свойства некоторых объектов. Вообще, прикольный механизм придумали Ромеро с Кармаком, конечно, для обработки обстановки — у каждого тайла есть свойства «можно пройти объект справо налево», «можно пройти объект сверху вниз» и т.д. Обработка столкновений проще при этом. Но зато приходится эти свойства обдумывать и назначать.

В целом, Дейв стал двигаться уже похоже. Теперь надо с длиной и высотой этих прыжков разобраться, чтобы не прыгал слишком далеко. И можно переходить к стрельбе!

11
Мар
2024

Носимся по дому

Сделал коррекцию приземления, добавил вертикальное перемещение Дейва по лабиринту, добавил прыжки на ходу. Похоже, прыжки слишком дальнобойные, надо свериться с оригиналом. Теперь Дейв полноценно перемещается, буду добавлять обнаружение стен, потолков и прочей мебели.

04
Мар
2024

Его пигалица перемахнула через куст!

Итак, сегодня Дейв научился прыгать на разную высоту, в зависимости от того, когда будет отпущена кнопка «прыжок». А также впервые начал распознавать под собой землю при приземлении. Так что сегодня Дейв самостоятельно залез на дерево.

29
Фев
2024

Даешь прыжки!

Собрал анимацию и механизм прыжков, а также переделал анимацию бега. Прыжки управляемые, как и положено в Дейве — на лету можно повернуть в другую сторону, уж не знаю, что за физика такая 🙂 Анимация работает успешно, теперь надо проверить, получаются ли при прыжках такие же расстояния в длину, как в оригинале. А потом можно и обстановку задействовать — пора побродить по этажам 🙂

26
Фев
2024

Дейв научился ходить!

Сегодня Дейв перешел на новый уровень — это уже не разрозненные демки, а заработавший движок. Первые движения — разворот на месте и бег вправо-влево. Управление обрабатывается от джойстика и клавы. После того, как Дейв побежал по экрану, я попробовал добавить и горизонтальный скроллинг. Он заработал, но нужно регулировать зону «люфта», а также хитро менять смещения спрайтов Дейва, когда двигается слой фона, чтобы этот самый Дейв не дергался. Но главное, что он теперь управляется и готов учиться новым движениям!

 

18
Фев
2024

Овеществляем лабиринт

Разобрал тайлы первого  и второго уровней, прописал им свойства. В Дейве своя система обработки обстановки — каждый тайл имеет свойства «проходимости», т.е. признаки того, что через этот тайл можно пройти справа налево, слева направо, сверху вниз, в него может попасть пуля, по нему можно спрыгнуть вниз и т.д. К примеру, сквозь ступеньки лестницы можно свободно проходить справа-налево и обратно, и прыгать вверх сквозь них тоже можно, а вот провалиться сквозь них нельзя. Но можно спрыгнуть по ним вниз. В оригинале каждое свойство это байт, у меня это будут (уже есть) биты в слове. Номер тайла умножаем на два, получаем смещение в таблице свойств и по нужным битам видим, можно ли проваливаться и т.д.
Так что скоро буду запускать Дейва в лабиринт 🙂

09
Фев
2024

Аппаратный скролинг на AZBK

Сделал экран размером 512х512, причем видимая часть 256х192. И кручу рулон во всех направлениях двумя регистрами — горизонтального и вертикального скроллинга. Так работает он мгновенно, то пришлось вставить задержку, чтобы было вообще видно, что экран двигается 🙂