В то время как проект Zombtron потребовал немного повозиться с ImageIcons, Graphics, JPanel и остальными, в конце концов, это было упражнение в полиморфизме.

Самая длинная цепочка наследования выглядела так: GameObject расширяется с помощью Enemy, который расширяется с помощью ChasingEnemy, который расширяется с помощью BossEnemy, который расширяется с помощью неабстрактного класса BoneDragon. Более короткие цепочки наследования создаются классом игрока или неподвижными врагами, такими как красная смертельная ловушка, которую вы можете видеть выше.

Управление очень плавное — направление ходьбы не зависит от направления стрельбы. Сложности как раз достаточно, чтобы новички чувствовали себя подавленными в каждой игре, в то время как геймеры могут пройти ее только после хотя бы нескольких поражений. Есть стратегии, которые нужно принять, например, распознать путь, который даст вам наибольшее количество времени, чтобы увернуться от пуль, или попытаться броситься на боссов, когда они прибудут, несмотря на вторжение зомби. Когда я представил этот великолепный продукт своему другу, он был захвачен и выдержал много раундов безжалостного зомби-пиршества, прежде чем смог одержать верх и сокрушить орду зомби.

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

В проекте используются классические игровые архетипы врагов. У нас есть классический «обычный враг», который является самым многочисленным и безвредным, если только не в огромных количествах. Это самый маленький на картинке выше. Затем у нас есть «элитный враг», который действует точно так же, как маленький, но медленнее, крупнее и смертоноснее. Затем мы переходим к другим доменам врагов — классический «враг дальнего боя» — это некромант, который сверкает изнутри своей мантии, в то время как классический «порождает меньших врагов» — это неподвижная структура, похожая на бассейн. Наконец, у нас есть структуры окружающей среды, которые в этой игре рассматриваются как враги, но которые являются просто объектами, по которым вы не хотите ходить. Смертельные ловушки убивают вас мгновенно, а медленные ловушки замедляют вас.

Это все для этого проекта. Это самое веселое, что у меня когда-либо было с проектом. Это было в начале моей карьеры программиста, и Java был хорошим языком для начала. Его строгая система типов и подробный язык облегчили понимание таких концепций, как наследование, структурирование кода и хорошее комментирование. В целом, отличный опыт, с большим количеством чая и холодной музыки во время производства.

PS: после тщательного тестирования мы обнаружили, что было сложно измерить поле столкновения игрока. Вот почему желтый прямоугольник столкновения виден.