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