|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Змейка. Написание игры |
|
C/C++ - Змейка. Написание игры
|
Старожил Сообщения: 222 |
Передомной появилась такая проблемма. Нада написать игру "Змейка" на Borland C++ 3.11 с использованием ООП и в графическом режиме. Помогите пожалуста разобратся с такими вопросами:
1. Как правильно спроэктировать самц игру, классы и тп? 2. Как реализовать движение змеи и изменение направлений при нажатии клавиш. Вообщем помогите хто чем может, кодом, советами, теорией, буду благодарен за любую помощь. |
|
------- Отправлено: 23:01, 22-04-2010 |
Пользователь Сообщения: 74
|
Профиль | Отправить PM | Цитировать ну тогда выкладывай исходники на все общее обозрение и критику, нам же интересно узнать как ты разобрался
![]() |
Отправлено: 10:04, 26-04-2010 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Всем доброго времени суток!
Мне вот тоже стало интересно написать земйку. Я начал делать все по мануалу: придумал что я хочу и вроде составил 2 класса. Червяк должен ползать сам. Пользователь лишь выбирает направление червя с помощью клавиатуры. Яблоки будут появлятся в случайных кооодинатах и через некоторое время исчезать. Съев одно яблоко червяк становится длинее на еденицу. Скорость червя увеличивается по мере увеличения его длины. Камни так же будут появляться в случайных местах. Если червь врежется в камень - игра закончена. Если червяк врежется в границы поля - игра закончена. За всю игру появляется N яблок. Игра считается успешно законченной, если длина червяк собрал M яблок (M<N). Поле - массив[40][40] Характеристики червя: Х координата, У координата, длина червя, скорость червя, количество собранных яблок. Характеристики объекта: Х коррдината, У координата, время жизни, тип объекта(яблоко или камень). class Worm { int xPos, yPos, length, speed, apples; public: Worm(); ~Worm(); void SetX(int X) {xPos=X;} int GetX() const {return xPos;} void SetY(int Y) {yPos=Y;} int GetY() const {return yPos;} void SetLength(int len) {length=len;} int GetLength() const {return length;} void SetSpeed(int spd) {speed=spd;} int GetSpeed() const {return speed;} void SetApples(int apls) {apples=apls;} int GetApples() const {return apples;} } class Obj { int xPos, yPos, existTime, objType; public: Obj(); ~Obj(); void SetX(int X) {xPos=X;} int GetX() const {return xPos;} void SetY(int Y) {yPos=Y;} int GetY() const {return yPos;} void SetTime(int time) {existTime=time;} int GetTime() const {return existTime;} void SetType(int type) {objTye=type;} int GetType() const {return objType;} } Подскажите, пожалуйста. |
Отправлено: 19:46, 17-11-2010 | #12 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать |
Отправлено: 21:58, 17-11-2010 | #13 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Я не знаю, про какую игру ты подумал. Я имею ввиду обычную змейку, как на старых моделях телефона nokia. Я хочу использовать не псевдографику, а какие-нибудь стандартные графические функции с++.
Перед тем как узнать координаты их надо установить... |
Отправлено: 23:02, 17-11-2010 | #14 |
Ветеран Сообщения: 3320
|
Профиль | Отправить PM | Цитировать Btf если проект под Win32, то в событии WM_CHAR оконной функции обрабатывать нажатия клавиш. В той же функции, но в другом событии (WM_PAINT), реализовать вывод на экран.
Для данной задачи, если требуется что было задействовано наследование, можно наследовать яблоко и камень от одного класса (того же Obj), или же все классы (включая Worm) наследовать от одного интерфейсного класса. Второй вариант упрощает менеджмент объектов. Если идти по пути ООП далее, то для решения данной задачи стоит создать ещё один класс, который будет управлять всеми игровыми процессами. Он же будет хранить все объекты, характеристики игрового поля, условия игры в своих полях. В стандарте С++ не заложено графических функций. Графический вывод осуществляют дополнительные библиотеки. Под Win32 такие как GDI, GdiPlus, Direct3D, OpenGL и прочие. |
Отправлено: 23:51, 17-11-2010 | #15 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Блин, как-то трудно. А если делать с помощью псевдографики? Как это реализовать?
|
Отправлено: 01:28, 18-11-2010 | #16 |
Старожил Сообщения: 222
|
Профиль | Отправить PM | Цитировать Цитата btf:
|
|
------- Отправлено: 03:15, 18-11-2010 | #17 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать а можите дать исходник, интересно)
|
Отправлено: 13:22, 20-01-2012 | #18 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Написание скриптов | zhecka | Скриптовые языки администрирования Windows | 4 | 10-11-2008 12:19 | |
Написание сетевой игры | Jedi | Программирование и базы данных | 1 | 04-01-2004 10:51 | |
Написание Скриптов | Guest | Microsoft Windows NT/2000/2003 | 6 | 31-08-2003 22:46 | |
Написание прог | Apis.NET | Программирование и базы данных | 13 | 28-06-2002 19:00 |
|