Вам предстоит наполнить готовую заготовку игровыми элементами. Каждый элемент должен уметь:
Возвращать имя файла, в котором лежит соответствующая ему картинка (например, "Terrain.png")
Сообщать приоритет отрисовки. Чем выше приоритет, тем раньше рисуется соответствующий элемент, это важно для анимации.
Действовать — возвращать направление перемещения и, если объект во что-то превращается на следующем ходу, то результат превращения.
Разрешать столкновения двух элементов в одной клетке.
Terrain
Сделайте класс Terrain, реализовав ICreature. Сделайте так, чтобы он ничего не делал.
Player
Сделайте класс Player, реализовав ICreature.
Сделайте так, чтобы диггер шагал в разные стороны в зависимости от нажатой клавиши со стрелкой (Game.KeyPressed). Убедитесь, что диггер не покидает пределы игрового поля.
Сделайте так, чтобы земля исчезала в тех местах, где прошел диггер.
Запустите проект — игра должна заработать!
В методе Game.CreateMap вы можете менять карту, на которой будет запускаться игра. Используйте эту возможность для отладки.
Продолжайте в том же проекте.
Пора добавить мешки с золотом и само золото!
Sack
Сделайте класс Sack, реализовав ICreature. Это будет мешок с золотом.
Мешок может лежать на любой другой сущности (диггер, земля, мешок, золото, край карты).
Если под мешком находится пустое место, он начинает падать.
Если мешок падает на диггера, диггер умирает, а мешок продолжает падать, пока не приземлится на землю, другой мешок, золото или край карты.
Диггер не может подобрать мешок, толкнуть его или пройти по нему.
Если мешок падает, а диггер находится непосредственно под ним и идет вверх, они могут "разминуться", и диггер окажется над мешком. Это поведение непросто исправить в существующей упрощенной архитектуре, поэтому считайте его нормальным.
Gold
Сделайте класс Gold, реализовав ICreature.
Мешок превращается в золото, если он падал дольше одной клетки игрового поля и приземлился на землю, на другой мешок, на золото или на край карты.
Мешок не превращается в золото, а остаётся мешком, если он падал ровно одну клетку.
Золото никогда не падает.
Когда диггер собирает золото, ему начисляется 10 очков (через Game.Scores).
Monster
Сделайте класс Monster, реализовав ICreature. Его поведение должно быть таким:
Если на карте нет диггера, монстр стоит на месте.
Если на карте есть диггер, монстр двигается в его сторону по горизонтали или вертикали. Можете написать поиск кратчайшего пути к диггеру, но это не обязательно.
Монстр не может ходить сквозь землю или мешки.
Если после хода монстр и диггер оказались в одной клетке, диггер умирает.
Если монстр оказывается в клетке с золотом, золото исчезает.
Мешок может лежать на монстре.
Падающий на монстра мешок убивает монстра.
Монстр не должен начинать ходить в клетку, где уже есть другой монстр.
Если два или более монстров сходили в одну и ту же клетку, они все умирают. Если в этой клетке был диггер — он тоже умирает.
Место для творчества!
После того, как вы сдадите все задачи, можете попробовать придумать и добавить ещё какую-нибудь возможность в игру.
Серафим
ВУЗ
Работа выполнена очень качественно! Очень грамотный специалист, рекомендую! Обращаюсь не в...
Александр
МЭИ
Исполнитель молодец! Срок на выполнение ставил неделю, исполнитель справился за день. За к...
Анна
Горный
Быстро, оперативно,аккуратно выполнена работа. Павел очень быстро отвечает на сообщения, о...
Антон
ИрНИТУ (бывш. ИрГТУ)
Решение внятное, выполнение заказа прошло настолько быстро, будто исполнитель решил его за...