|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.04.2009, 14:00 | #1 |
Форумчянин
Форумчанин
Регистрация: 05.04.2009
Сообщений: 446
|
отрисовка локации
я начал делать игру. пока у меня есть картинка игрока (TImage), которая движется по локации (TBitMap'ы, отрисованные на канву). игрок имеет свойство transparent=true. в итоге, когда он идет по локации, изредка возникает мигание текстур. Как этого избежать?
PS по ЕХЕшнику заметно, где-то через 10 секунд попадается такое
Nobody expects Spanish Inquisition!
|
21.04.2009, 14:12 | #2 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
1) Если делать анимированный шаг с меньшей скоростью, (Например 4 кадра на шаг, скорость смены - раз в 250 мс) То это мигание появляется очень редко даже для игрока размером 64*128 (Проверено на собственной шкуре)
2) Попробуй поменять способы загрузки изображений - например игрока рисовать на канве, а травку загружать с помощью .loadfromfile. Это обеспечит гибкость программы - например вставив в папку с текстурами файл 1121.bmp а в папке Locs писать текстовики с картой таким методом: 1111 1121 1113 1134 1431 4325 ... То тогда можно не меняя код в EXE расширить возможности игры: а)Считать текстовый локационный файл в строку. б)Вырезать из нее первое значение: S:=Copy(StrokaSchitannayaIzFaila,1, 4); в)Загнать значение на экран Image1.Picture.LoadFromFile('Locs\' +S+'.bmp'); P.S. Только придется для каждой ячейки карты свою картинку предусмотреть.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
21.04.2009, 14:21 | #3 |
Форумчянин
Форумчанин
Регистрация: 05.04.2009
Сообщений: 446
|
у меня все так и есть, все грузится из файлов, в файлике start.txt все прописано.
рисовать игрока на канве я не хочу, потому что тогда при каждом шаге надо будет заново рисовать верхние текстуры (а в последствии и объекты). ты хочешь сказать, что лучше рисовать, как он идет, т.е. 4 раза перемещать его на маленькое расстояние?
Nobody expects Spanish Inquisition!
|
21.04.2009, 14:23 | #4 |
Пользователь
Регистрация: 18.04.2009
Сообщений: 55
|
Это зависит от вычислительных способностей компьютера, будет она мигать или нет. Кроме того, используется только мощность процессора и объем ОЗУ (видеокарта отдыхает). И еще, не будет же система только для того чтобы не мигала картинка определять всю вычислительную способность на нее. Рекомендую использовать DirectDraw.
|
21.04.2009, 14:26 | #5 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
Да, у меня по крайней мере было так. И я тоже сначала использовал ОГРОМНОЕ изображение (но одно) для локи. Но потом поменял его на... 256 маленьких (нудно, скучно, но что поделать). После этого ФОН НЕ МЕРЦАЛ. Изредка мигал игрок, но это наверное из-за его размера (64*128).
P.S. Если его плавно перемещать, то можно на каждый шаг придумать его анимацию перемещения (шаг, прыжки и т.д.)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отрисовка компонентов окна | AXiUS | Фриланс | 1 | 28.01.2009 20:51 |
Отрисовка компонентов окна | AXiUS | Компоненты Delphi | 0 | 28.01.2009 06:41 |
Отрисовка компонентов | Dr.Badnezz | Компоненты Delphi | 1 | 04.01.2009 16:50 |
Отрисовка объектов на форме: слои. | Selebro | Общие вопросы C/C++ | 4 | 30.11.2008 23:46 |
Отрисовка CheckListBox. | NikLik | Компоненты Delphi | 0 | 21.09.2008 21:58 |