Должен ли я использовать объекты для плитки?


Я делаю небольшую 2D-игру, в которой есть персонаж, который может прыгать (боковой скроллер). Теперь уровни в игре сделаны из плиток (Марио нравится?). Теперь мой персонаж может прыгать в данный момент, но он не может приземлиться (потому что плитки все еще не существуют).

Мой вопрос заключается в том, должен ли я сделать экземпляры плиток классов (кажется, довольно OO)? Альтернативный вариант, который я придумал, - это просто нарисовать плитки на уровне и сделать прямоугольники, которые удерживают там положение, но я чувствую, что это сделает его довольно трудно придать им особые атрибуты. Типа: может быть разрушен, является твердым?

У кого-нибудь есть альтернативные решения для реализации плиток?

1 2

1 ответ:

Ну конечно же.

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

В некотором смысле этот вопрос даже не имеет смысла, поскольку весь смысл объектной ориентации состоит в том, что все является объектом. Ваш вопрос, вероятно, был больше похож на то, должна ли плитка быть представленным классом, однако. Но опять же, ответ будет утвердительным: в противном случае рассуждение о ваших объектах плитки становится трудным: у вас будут *непересекающиеся( данные (координаты, представление, действия), соответствующие одной плитке. Поскольку эти данные непересекающиеся, было бы трудно рассуждать об объекте связно. Вы не можете написать код, который рассматривает плитки как логические сущности.

О ваших альтернативах:

Альтернативой, которую я придумал, является просто рисование плиток в уровень и создание прямоугольников, которые удерживают там положение, но я чувствую, что это будет довольно трудно дать им специальные атрибуты. Типа: может быть разрушен, является твердым?

Вы уже отметили недостатки. На самом деле это вовсе не разумное изменение, оно сделало бы тривиальные задачи очень сложными (или невозможными).

Структуры

Структуры и классы - это одно и то же в C++ (за исключением несущественных деталей для этой цели обсуждение).

Считывание плитки с экрана

Как и ваша первая альтернатива, эта просто не дает никаких преимуществ.

В некотором смысле этот вопрос трудно решить, как только вы освоите программирование, потому что (независимо от того, ищете ли вы объектно-ориентированное решение или нет) представление плиток объектами даже не является выбором , это автоматически.