0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 1
|
|
1 | |
Написание классов и методов к ним23.07.2016, 16:41. Показов 728. Ответов 2
Метки нет (Все метки)
Уважаемые программисты, подскажите как пишутся классы для игр и методы.
Я сейчас пишу игру танчики. Есть класс базовый класс Объект, от этого класса наследуется классы МойТанк. В классе МойТанк нужно написать функцию, которая проверяет столкновения со всеми объектами на игровом поле. По мере написания игры появляются новые объекты и поэтому их тоже нужно учитывать. В данный момент вот у меня есть метод в классе OnKeyPressed(),который при нажатии стрелок перемещает мой танк, перед этим проверяя столкновения. Код
void MyTank::OnKeyPressed() { Если нажата кнопка вверх HelpMoveUp(); Иначе Если нажата кнопка вниз HelpMoveDown(); Иначе Если кнопка вправо HelpMoveDown(); Иначе Если нажата кнопка влево HelpMoveLeft(); } Код
void MyTank::HelpMoveUp() { Если мой танк сталкивается со стеной ничего не делаем; Если мой танк сталкивается с танком противника ничего не делаем; ... И каждый раз при добавлении на игровую карту новых объектов нужно добавлять все новые и новые проверки ... Передвигаем Танк; } классы, которые уже написаны, проверены и отлажены. Приходится дописывать все новые и новые проверки столкновений. Как это правильно делается? Мне кажется, что я неправильно делаю, и что есть другие способы написания кода. Заранее спасибо. Добавлено через 28 минут И еще пара вопросов по этой теме. Должны ли объекты знать о других объектах на карте? Должен ли Мой Танк знать о том, что на карте есть другие объекты, с которыми он должен как-то взаимодействовать? Добавлено через 17 минут Потом хочу написать классы для Аптечки и Травы. И снова придется добавлять проверки, что-то вроде этого Код
void MyTank::HelpMoveUp() { Если мой танк сталкивается со стеной ничего не делаем; Если мой танк сталкивается с танком противника ничего не делаем; Если мой танк сталкивается с аптечкой прибавляем немного жизней; можно ехать вперед; Если мой танк сталкивается с травой можно ехать вперед; ... Передвигаем Танк; }
0
|
23.07.2016, 16:41 | |
Ответы с готовыми решениями:
2
Вынести методы из классов Panel и PictureBox (явная реализация методов базовых абстрактных классов) Определение классов и методов Связь классов и методов Вызов методов из классов |
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
23.07.2016, 17:16 | 2 |
1
|
Модератор
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
|
|
23.07.2016, 17:21 | 3 |
Для этого и существует полиморфизм.
В классе Объект объявляете функции типа "Сталкивается_со_стеной()" виртуальными. Тогда при присвоении указателю на Объект адреса экземпляра "Мой танк" автоматически получится МойТанк->Сталкивается_со_стеной() вместо Объект->Сталкивается_со_стеной()
1
|
23.07.2016, 17:21 | |
23.07.2016, 17:21 | |
Помогаю со студенческими работами здесь
3
Вызов методов классов по указателям Наследование классов. Конфликт методов Оболочка для потков-методов классов Вызов методов базового и производного классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |