| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > Подскажите с управлением в "Змейке". |
| Автор: spamER 17.12.2008, 21:26 | ||
| Народ, пожалуйста помогите. Пытаюсь написать игру "Змейка". В качестве тела змеии использую массив из компонентов TShape (создаю их в отдельной процедуре - конструктором). Сама змейка движется, только вот когда управляешь ей, она НЕ правильно движется. Например при движении вверх все Shape'ы начинают вдигатся как в тетрисе. А нада как в обычной змейке. что бы она умела поворачивать. Проблема : как сделать управление змейкой (Вверх, Вниз, Вправо, Влево) что бы она правильно поворачивала??? То что я написал:
Вот прикрепил исходник, плз помогите. |
| Автор: TForumUser 17.12.2008, 23:54 | ||
Твоя основная ошибка: ты применяешь направление движения сразу для всех сегментов змейки:
попробуй сделать проще: не тягать всю змейку целиком, а переместить последний сегмент змейки (хвост) на новое положнение головы змейки. |
| Автор: spamER 18.12.2008, 00:17 | ||||
Можешь подсказать как это сделать.Если не тяжело приведи пример кода. ПЛЗ. |
| Автор: TForumUser 18.12.2008, 00:24 | ||
где i - (хвост змейки), j - голова змейки В начале i=2 j=1 остальные - по аналогии работает если изображение головы не отличается от изображения хвоста То, что смог набросать без делфи... Если не получится, завтра ещё подумаю) |
| Автор: Christoph 18.12.2008, 00:47 |
| а может переменные локальные? а цикл? или без цикла? |
| Автор: spamER 18.12.2008, 00:50 |
| TForumUser чет оно не работает Добавлено через 9 минут и 8 секунд Народ ну помогите , плз. |
| Автор: Christoph 18.12.2008, 16:12 |
| конечно оно не будет работать.....я ж писал выше |
| Автор: TForumUser 18.12.2008, 17:18 | ||
Ой, ну конечно работает, просто надо кое-то исправить
при запусек программы i = 1, j = (количество сегментов) n = (количество сегментов) И переменный должны быть глобальными, потому что сама процедура должна делать только один шаг, по той же причине не нужен цикл, так что нечего минусовать сообщения... |
| Автор: spamER 19.12.2008, 17:03 |
| Чет оно не работает. Мож кто знает как правильно нада ??? |
| Автор: TForumUser 19.12.2008, 17:47 |
| как именно оно не работает? потому что у меня все норм |
| Автор: spamER 19.12.2008, 18:29 |
| TForumUser оно даже не компилируется. Если не тяжело прикрепи исходник(что бы уже рабочий был). |
| Автор: TForumUser 19.12.2008, 19:34 | ||
Знаете, при ошибке во время компиляции в нижней части окна с кодом появляется окошко, в котором описана суть ошибки. Обратив внимание на это окошко, можно догадаться, что вся проблема в повторном объявлении переменной. Если немного подстроить данный код под Вашу программу, можно получить рабочую программу:
И на будущее: на форуме не делают за вас всю работу, а наталкивают на мысль, так что привыкайте. Я же пишу за Вас программу лишь из-за того, что это мое сотое сообщение и я от осознания сего факта добрею. |
| Автор: NewDima 19.12.2008, 19:56 | ||
Добавлено через 2 минуты и 33 секунды а мое 111-е )) |
| Автор: spamER 19.12.2008, 20:28 |
| 1. TForumUser ОГРОМНОЕ спасибо. 2. NewDima также ОГРОМНОЕ спасибо. Не знаю даже как вас благодарить, спасибо. Все работает |
| Автор: NewDima 20.12.2008, 06:22 |
| приучись закрывать тему, чтобы те, кто заходит сюда помочь, могли быстро увидеть, где еще не помогли. Сверху надпись-ссылка есть |