Должен ли я использовать объекты для плитки?
Я делаю небольшую 2D-игру, в которой есть персонаж, который может прыгать (боковой скроллер). Теперь уровни в игре сделаны из плиток (Марио нравится?). Теперь мой персонаж может прыгать в данный момент, но он не может приземлиться (потому что плитки все еще не существуют).
Мой вопрос заключается в том, должен ли я сделать экземпляры плиток классов (кажется, довольно OO)? Альтернативный вариант, который я придумал, - это просто нарисовать плитки на уровне и сделать прямоугольники, которые удерживают там положение, но я чувствую, что это сделает его довольно трудно придать им особые атрибуты. Типа: может быть разрушен, является твердым?
У кого-нибудь есть альтернативные решения для реализации плиток?
1 ответ:
Ну конечно же.
Плитка-это сущность в логике вашей программы. Такие сущности естественно соответствуют объектам. На самом деле разумной альтернативы этому нет, хотя, конечно, не каждый отдельный тип сущности должен быть представлен своим собственным классом .
В некотором смысле этот вопрос даже не имеет смысла, поскольку весь смысл объектной ориентации состоит в том, что все является объектом. Ваш вопрос, вероятно, был больше похож на то, должна ли плитка быть представленным классом, однако. Но опять же, ответ будет утвердительным: в противном случае рассуждение о ваших объектах плитки становится трудным: у вас будут *непересекающиеся( данные (координаты, представление, действия), соответствующие одной плитке. Поскольку эти данные непересекающиеся, было бы трудно рассуждать об объекте связно. Вы не можете написать код, который рассматривает плитки как логические сущности.О ваших альтернативах:
Альтернативой, которую я придумал, является просто рисование плиток в уровень и создание прямоугольников, которые удерживают там положение, но я чувствую, что это будет довольно трудно дать им специальные атрибуты. Типа: может быть разрушен, является твердым?
Вы уже отметили недостатки. На самом деле это вовсе не разумное изменение, оно сделало бы тривиальные задачи очень сложными (или невозможными).
Структуры
Структуры и классы - это одно и то же в C++ (за исключением несущественных деталей для этой цели обсуждение).
Считывание плитки с экрана
Как и ваша первая альтернатива, эта просто не дает никаких преимуществ.
В некотором смысле этот вопрос трудно решить, как только вы освоите программирование, потому что (независимо от того, ищете ли вы объектно-ориентированное решение или нет) представление плиток объектами даже не является выбором , это автоматически.