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

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

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2007, 19:57   #11
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Ну у тебя там и наворочено
Попробую что-то понять. Найду ошибку напишу.
Ты отпишись если нашел или уже болт на это забил.

Небольшая оптимизация
1. Randomize достаточно вызвать один раз в OnCreate формы, каждую секунду это делать не обязательно.
2. Skins:=ExtractFilePath(Application. ExeName)+'Skins\';
Если в программе нет диалогов Open или Save (они после выполнения изменяют текущую директорию), достаточно указать просто имя директории 'skins\'

Что касается графики, я всегда на канве спрайтами рисовал, поэтому еще не разобрался, с логикой тоже.
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 04.07.2007 в 20:54.
mutabor вне форума Ответить с цитированием
Старый 04.07.2007, 21:45   #12
Format C:
Пользователь
 
Регистрация: 11.03.2007
Сообщений: 92
По умолчанию

Цитата:
Skins:=ExtractFilePath(Application. ExeName)+'Skins\';
Если в программе нет диалогов Open или Save (они после выполнения изменяют текущую директорию), достаточно указать просто имя директории 'skins\'
Когда я запускал эту прогу в МЕ, она искала файлы в корне C:

Цитата:
Что касается графики, я всегда на канве спрайтами рисовал, поэтому еще не разобрался, с логикой тоже.
Я рисую квадратами из рисунка. Это сделано для поддержки скинов.
Подскажи как ещё можно сделать.

Цитата:
Ты отпишись если нашел или уже болт на это забил.
Я ещё не забил на тетрис. Перелопачиваю код след образом:
Все функции и процедуры играются тока циферками в массиве, а потом это всё разом перерисовывается.
Если так лучше не делать, то скажи сразу, пока я много не переделал.

Никогда не писал такие большие проекты, поэтому не знаю с какой стороны подойти к решению.

Стучи в асю. Я там с 16 и до 20-22
Format C: вне форума Ответить с цитированием
Старый 04.07.2007, 22:33   #13
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

Цитата:
Все функции и процедуры играются тока циферками в массиве, а потом это всё разом перерисовывается.
Все так и надо делать.
Romanus вне форума Ответить с цитированием
Старый 04.07.2007, 23:05   #14
Basic-Base
Новичок
Джуниор
 
Регистрация: 04.07.2007
Сообщений: 2
По умолчанию

Ну да, всё правильно делаешь вроде.
Basic-Base вне форума Ответить с цитированием
Старый 05.07.2007, 14:33   #15
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Согласен насчет массива.

Отрисовку по таймеру я всегда так делал:
Нужен буфер (создать в OnCreate)
buffer:=tbitmap.create;
buffer.width и buffer.height обязательно задать нужно, как у фона

Шаг1. Рисуем фон в буфер (копируем из битмапа или программно рисуем неважно)
Шаг2. Рисуем в буфере все остальное, тоже откуда угодно можно, из ImageList удобно если прозрачность нужна, не надо с маской играться.
Шаг 3. Копируем буфер на канву, ту к-рая для отображения на экране.
Так можно и на канве формы рисовать и никакого мерцания.

В случае с тетрисом кроме таймера, еще по нажатию кнопок отрисовку надо делать. Именно тетрис я никогда не делал, так что готового ничего подсказать не могу.
Массив мне кажется посложнее можно сделать, своего типа. Если пока фигура целая ее можно отрисовывать как фигуру, то когда целостность нарушится, надо будет просто квадратики цветные рисовать. Будет полезно свойство цвет у массива.

А аси нет извиняй
Вот еще исходник держи, там все намного проще Вложение 783
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 11.09.2007 в 19:54.
mutabor вне форума Ответить с цитированием
Старый 05.07.2007, 16:02   #16
Romanus
Кодер
Форумчанин
 
Регистрация: 27.01.2007
Сообщений: 271
По умолчанию

Цитата:
В случае с тетрисом кроме таймера, еще по нажатию кнопок отрисовку надо делать. Именно тетрис я никогда не делал, так что готового ничего подсказать не могу.
Лучше обработать нажатие клавиш но перерисовывать в следующем тике чтобы не сбивать и не нарушать ритма игры.
Romanus вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите сделать тетрис! 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