Проверить пересечение множества ракет и врага? - PullRequest
1 голос
/ 06 февраля 2011

Я хочу создать класс, скажем, под названием враг 1, враг 2 и враг 3.

Враг 1: очень легко убить, но много. Враг 2: Сложнее убить, но их меньше. Враг 3: Босс, супер трудно убить, только один.

Допустим, многим будет 1000 человек. Меньше их будет 100. Босс, конечно, один.

Так что было бы глупо делать 1 011 различных экземпляров для игры только противника. Это потребует большого количества кода.

Теперь мой истребитель может запустить много ракет. Скажем, 2000 в минуту ради веселья.

Мне нужно проверить наличие столкновений между противником и всеми ракетами. Я планирую использовать только 4 разных экземпляра. Который будет врагом 1, врагом 2, врагом 3 и ракетой.

Есть идеи, как это сделать? Очевидно, мне понадобятся потоки, но я не уверен, как в этом случае проверять наличие коллизий.

Ответы [ 2 ]

3 голосов
/ 06 февраля 2011

Если по этому месту бродит 1101 враг, то у каждого из них будет свое местоположение, урон, запас боеприпасов и т. Д., Поэтому вам потребуется 1101 экземпляр.Вам нужно только четыре класса .Затем вы создаете целый массив экземпляров каждого класса.

Вам также нужен экземпляр для каждой ракеты.

Столкновения?Ну, а вы планируете использовать для этого какую-нибудь библиотеку 3D-графики?Это, вероятно, будет обрабатывать обнаружение столкновений.Или у твоих врагов все сферы?Тебе нужна геометрия ...

2 голосов
/ 06 февраля 2011

Так что было бы глупо делать 1101 разную игру для игры только противника.Это потребует большого количества кода.

Вовсе нет.Возможно, вы путаете класс с экземпляром, потому что на самом деле вам нужно будет создать 1101 экземпляр этих объектов, но вам понадобится код только для 3 классов врага (или 1 класса, возможно, если вы сможете решить, насколько сложно убить свойство класса).Скорее всего, у вас будет коллекция, например ArrayList of Enemy.

Другой ответ обрабатывает столкновения, но, скорее всего, вы будете выполнять эту часть в своей модели, а не в коде представления.

...