Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.09.2009, 18:37   #1
Рамик
Студент
Форумчанин
 
Аватар для Рамик
 
Регистрация: 18.02.2009
Сообщений: 125
Вопрос [Pascal] Помогите с движением змейки

Помогите пожалуйта...как организовать движение змейки...точнее с чего начать и каким способом рисовать ее?
Рамик вне форума Ответить с цитированием
Старый 08.09.2009, 18:38   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Для начала, рисуй на канве. Поле- массив, ячейки которого могут принимать следующие значения: 0 - пусто, 1 - тело змейки, 2 - голова змейки, 3 - еда.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 08.09.2009, 18:42   #3
Рамик
Студент
Форумчанин
 
Аватар для Рамик
 
Регистрация: 18.02.2009
Сообщений: 125
По умолчанию

а как сделать чтобы змейка поворачивала под прямым углом?
Рамик вне форума Ответить с цитированием
Старый 08.09.2009, 18:47   #4
mMAg
Форумчанин
 
Аватар для mMAg
 
Регистрация: 11.08.2009
Сообщений: 433
По умолчанию

Сделай обработку нажатий клавиш : ВЛЕВО, ВПРАВО, ВНИЗ, ВВЕРХ. Для хранения координат ( ячеек ) в которых в данный момент времени находится змейка заведи двухсторонний список элементами которого будет запись Point с двумя целочисленными полями. Под прямым углом будет поворачивать в любом случае, если правильно заносить элементы в список. При движении достаточно лишь добавлять элемент в голову списка и удалять элемент из хвоста. Соответственно перерисовывать можно лишь изменения списка.

Допустим голова списка указывает на элемент, хранящий координаты 150, 150. При нажатии на клавишу ВЛЕВО в следующий момент времени добавить в голову элемент с координатой 149, 150. И по аналогии в остальных случаях. Как раз будет поворачивать под прямым углом.
ЗЫ: В таком случае нужно еще проверить 2-ой от головы элемент списка, чтобы змейка не повернула внутрь себя

Последний раз редактировалось mMAg; 08.09.2009 в 18:54.
mMAg вне форума Ответить с цитированием
Старый 08.09.2009, 21:27   #5
ЕвгениуS
студент
Пользователь
 
Аватар для ЕвгениуS
 
Регистрация: 02.03.2008
Сообщений: 81
По умолчанию

имеется пример подобной программы вполненной на дельфи... если надо могу поделиться посмотришь что да как?
Вложения
Тип файла: rar SnakeO.rar (282.7 Кб, 13 просмотров)
ЕвгениуS вне форума Ответить с цитированием
Старый 08.09.2009, 21:53   #6
Levsha100
Заблокирован
Старожил
 
Регистрация: 20.07.2008
Сообщений: 4,032
По умолчанию

...есть книга "Занимательное программирование"(поищите по форуму), там все есть...
Levsha100 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исходник змейки fis Gamedev - cоздание игр: Unity, OpenGL, DirectX 21 31.03.2010 22:19
Проблема с движением вокруг своей оси. intelx1989 Общие вопросы Delphi 3 14.05.2009 18:02
Как избавиться от появления хвоста за движением эдита edit? Горожанин Мультимедиа в Delphi 9 30.04.2009 14:40
Управление движением объекта мышью program123 Общие вопросы Delphi 9 08.03.2009 20:11