|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.06.2007, 19:46 | #1 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
Старый добрый тетрис
Всем привет.
Решил, вот на днях написать тетрис. Но возник вопрос: Как правильно сделать падение фигур и уничтожение уже собравшейся линии. Делал это примерно так (исходник показать не могу - корявый очень): 1. Вычисляю высоту фигуры в зависимости от её поворота. 2. Проверяю координаты (If Y+H>20 Then касание) 3. Переведение текущей фигуры в пасивное состояние, обнуление координат, старт новой фигуры. Иногда фигурки погружаются на одну клетку вглубь (за Image). Затычка с касанием и всем что с ним связяно. Помогите, кто знает как это сделать Заранее спасибо. |
21.06.2007, 21:32 | #2 |
Форумчанин
Регистрация: 31.05.2007
Сообщений: 486
|
Наверно правильней сделать для фигуры "движение внутри массива". Двумерный массив, в простейшем случае элементы двоичные - "свободно/занято". Проверять всё станет гораздо проще и быстрее. Даже если фигуры должны двигаться плавно, а не скачками, то все-равно можно сделать так, чтобы несколько точек на экране соответствовало одному элементу массива.
Т.е. все действия идут с массивом, а на экран выводится результат. |
21.06.2007, 21:42 | #3 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
2Jeni:
Я пытался так сделать, проверял циклами, но прога с треском слетала. Можешь по пунктам расписать перемещение и проверку, а то у меня бошка уже мало чего соображает (сессию сдавал). |
22.06.2007, 10:39 | #4 |
Delphi/C++/C#
Участник клуба
Регистрация: 29.10.2006
Сообщений: 1,972
|
насчёт массива - это правильно, сколько знал людей, кто тетрисы писал - все использовали массив - как логическую структуру поля. А визуальное отображение - лучше StringGrid (DrawGrid) я думаю не найти.
|
22.06.2007, 17:38 | #5 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
Вот что уменя получилось.
Версия ещё не рабочая (в плане поиграть). Не пойму как определить касание фигурой какого либо объекта. Подскажите кто что знает. С массивом тоже не особо понятно. |
25.06.2007, 12:33 | #6 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
Ну что никто не знает?
Тетирисы ведь многие делали |
25.06.2007, 13:26 | #7 |
Кодер
Форумчанин
Регистрация: 27.01.2007
Сообщений: 271
|
Зы раньше была такая оболочка Dos Navigator и в ней был тетерис а эта оболочка была с открытыми кодами поищи может и нароешь их.
|
25.06.2007, 19:06 | #8 |
Регистрация: 25.06.2007
Сообщений: 4
|
Ой.Помню заигрывался тетрисом ночи напролет))) А щас и написать самому можно.Кул.
|
01.07.2007, 21:59 | #9 |
Пользователь
Регистрация: 11.03.2007
Сообщений: 92
|
Возможно я не правильно объяснил суть проблемы: мне нужны не исходники, а принцип и алгоритм складирования фигурок на поле.
Исходники я многие скачивал, но ничего не понял. Уж как-то всё там сложно. Свой код мне ближе. Объясните мне алгоритм, остальное я как-нибудь сам напишу. |
01.07.2007, 22:42 | #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 |