![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
![]()
Всем привет.
Решил, вот на днях написать тетрис. Но возник вопрос: Как правильно сделать падение фигур и уничтожение уже собравшейся линии. Делал это примерно так (исходник показать не могу - корявый очень): 1. Вычисляю высоту фигуры в зависимости от её поворота. 2. Проверяю координаты (If Y+H>20 Then касание) 3. Переведение текущей фигуры в пасивное состояние, обнуление координат, старт новой фигуры. Иногда фигурки погружаются на одну клетку вглубь (за Image). Затычка с касанием и всем что с ним связяно. Помогите, кто знает как это сделать Заранее спасибо. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 486
|
![]()
Наверно правильней сделать для фигуры "движение внутри массива". Двумерный массив, в простейшем случае элементы двоичные - "свободно/занято". Проверять всё станет гораздо проще и быстрее. Даже если фигуры должны двигаться плавно, а не скачками, то все-равно можно сделать так, чтобы несколько точек на экране соответствовало одному элементу массива.
Т.е. все действия идут с массивом, а на экран выводится результат. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
![]()
2Jeni:
Я пытался так сделать, проверял циклами, но прога с треском слетала. Можешь по пунктам расписать перемещение и проверку, а то у меня бошка уже мало чего соображает (сессию сдавал). |
![]() |
![]() |
![]() |
#4 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
![]()
насчёт массива - это правильно, сколько знал людей, кто тетрисы писал - все использовали массив - как логическую структуру поля. А визуальное отображение - лучше StringGrid (DrawGrid) я думаю не найти.
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
![]()
Вот что уменя получилось.
Версия ещё не рабочая (в плане поиграть). Не пойму как определить касание фигурой какого либо объекта. Подскажите кто что знает. С массивом тоже не особо понятно. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
![]()
Ну что никто не знает?
Тетирисы ведь многие делали |
![]() |
![]() |
![]() |
#7 |
Кодер
Форумчанин
Регистрация: 27.01.2007
Сообщений: 271
|
![]()
Зы раньше была такая оболочка Dos Navigator и в ней был тетерис а эта оболочка была с открытыми кодами поищи может и нароешь их.
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 25.06.2007
Сообщений: 4
|
![]()
Ой.Помню заигрывался тетрисом ночи напролет))) А щас и написать самому можно.Кул.
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
![]()
Возможно я не правильно объяснил суть проблемы: мне нужны не исходники, а принцип и алгоритм складирования фигурок на поле.
Исходники я многие скачивал, но ничего не понял. Уж как-то всё там сложно. Свой код мне ближе. Объясните мне алгоритм, остальное я как-нибудь сам напишу. |
![]() |
![]() |
![]() |
#10 |
Кодер
Форумчанин
Регистрация: 27.01.2007
Сообщений: 271
|
![]()
2Format C: а что тут сложного. Есть определенный набор фигур состоящий из четырех элементов. Эти фигуры последовательно даются в руки игроку но при этом они падают с определенной скоростью. Также пользователь может вращать фигуры вокруг собственного центра тяжести. Столкновение с уже поставленными фигурами определяется обычной сортировкой. Также определяется не заполнилась одна из строк стакана если да то удаляем ее и опускаем верхние ряды. Также определяем не задела ли текущая летящая фигура верх стакана в таковом случае завершаем игру и записываем в таблицу рекордов (если таковая нужна) результат.
Вроде все просто. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите сделать тетрис! | sid | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 21 | 06.05.2013 20:32 |
Старый серер перенести на новый, а старый заглушить, при этом не потерять настроек. | Spartak | Помощь студентам | 1 | 28.01.2008 12:07 |
массив и тетрис | sid | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 04.04.2007 14:41 |