IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Графика
Shuruper
сообщение 19.09.2009 15:52
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской
Реальное имя: Антон

Репутация: -  0  +


Начал делать пошаговую стратегию с клетчатым полем, и столкнулся вот с какой проблемой. Если клетки поля достаточно маленькие (30х30, 40х40) и их достаточно много то поле постоянно маргает. Подскажите, что сделать.


ps заранее извиняюсь если написал не в ту тему.


--------------------
Я бы исправил мир, но Бог не дает мне исходников...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 19.09.2009 16:07
Сообщение #2


Гость






Цитата
Если клетки поля достаточно маленькие (30х30, 40х40) и их достаточно много то поле постоянно маргает.
Это не потому, что клетки маленькие, а потому что избран неправильный метод их обновления... Покажи, как ты делаешь это самое обновление всего поля, посмотрим, что можно сделать... На правах догадки (без кода сказать ничего определенного все равно нельзя): у тебя не всегда ВСЕ клетки надо обновлять, так вот не обновляй всё поле, обновляй только те клетки, состояние которых изменилось.
 К началу страницы 
+ Ответить 
andriano
сообщение 19.09.2009 20:55
Сообщение #3


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Общепринятый способ борьбы с мерцанием - буферизация, которую в англоязычных материалах почему-то называют двойной.
Т.е. отрисовка отдельных элементов происходит в буфер, после чего буфер ЦЕЛИКОМ переливается на экран (в клиентскую область окна).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
sheka
сообщение 19.09.2009 21:32
Сообщение #4


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Цитата(andriano @ 19.09.2009 20:55) *

Общепринятый способ борьбы с мерцанием - буферизация, которую в англоязычных материалах почему-то называют двойной.

Насколько я понял - это работа с видеостраницами, так?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 20.09.2009 14:59
Сообщение #5


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(sheka @ 19.09.2009 22:32) *

Насколько я понял - это работа с видеостраницами, так?

Необязательно. Работа с видеостраницами - чстный случай буферизации, близкий к тому, что было мной описано. Я как раз предлагал работу с использованием единственной сраницы, - например, в тех случях, когда вторую страницу видеопамяи создать невозможно либо нецелесообразно.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shuruper
сообщение 20.09.2009 17:07
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской
Реальное имя: Антон

Репутация: -  0  +


Кажется я понял в чем дело. Я пишу

repeat

таблица

until ...;


Вместо

repeat

таблица

readln;
until...;

Так?


--------------------
Я бы исправил мир, но Бог не дает мне исходников...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 20.09.2009 18:14
Сообщение #7


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Если не считать текстовых квестов, readln в играх не используется.
Вообще.
readln несовместим ни с анимацией, ни с выводом текста поверх отекстуренного фона.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shuruper
сообщение 20.09.2009 18:58
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 48
Пол: Мужской
Реальное имя: Антон

Репутация: -  0  +


Цитата(andriano @ 20.09.2009 19:14) *

Если не считать текстовых квестов, readln в играх не используется.
Вообще.
readln несовместим ни с анимацией, ни с выводом текста поверх отекстуренного фона.

Ну не ридлн я его в качестве премера написал. Там допустим процедура запроса.


--------------------
Я бы исправил мир, но Бог не дает мне исходников...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 20.09.2009 22:45
Сообщение #9


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Ну, тогда уж:
repeat
// опрос органов управления
// изменение состояния
// отображение текущего состояния
until...
Но, похоже, это материал для отдельной темы (которая, впрочем, неоднократно здесь обсуждалась
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.04.2024 11:33
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"