Страница: 1 |
Страница: 1 |
Вопрос: Карта города
Добавлено: 15.11.06 20:23
Автор вопроса: Neco | Web-сайт:
Надо сделать карту города - чтоб мона было тыкать там куда-нить, инфу получать. Объектами (дома, памятники) у меня будут path - это я уже точно решил, а вот отрисовку фона (собственно сам город) пока не знаю как делать. карта будет порезана на куски, пути к кускам - в БД. При попадании точки (координаты центра) в радиус "поражения" картинка должна быть подгружена и прилеплена к отображаемой области.
теперь вопрос - как вообще правильно рисовать?
рисую картинку так:
делаю это в событии Paint. когда мышью "перемещаю" картинку (меняю m_loc) приходится вызывать Refresh, но тогда во время перетаскивания проц загружается на все сто. делал по таймеру - неприятные подвисоны при интервале больше 30. при меньшем интервале проц загружен стабильно процентов на 80.
img у меня Image - это правильно?
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 16.11.06 21:12
1. Почему именно Image а не Bitmap?
2. Попробуй в событии MouseMove обновлять экран не при каждом событии, а ,скажем, с шагом в 10-15 пикселов (когда ты меняешь m_loc). По идее это должно снизить нагрузку на проц.
3. Попробуй включить бит стиля DoubleBuffer для формы... это избавит от всякого рода мерцаний и миганий при перерисовках экрана
4. И последнее, что приходит в голову.. вместо Refresh попробуй использовать Invalidate(Rect) с указанием области перерисовки.. (т.е. видимой части)
Номер ответа: 2
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #2
Добавлено: 16.11.06 21:40
1. Ну вроде image родитель битмапа - по идее должен быть быстрее. хотя это вопрос для нового топика: влияет ли степень вложенности наследования на производительность?
2. сделал при mousedown включение таймера с интервалом 30, а при mouseup выключение. плюс переделал движок - теперь у меня прорисовка пути брушем с текстурой. бруш вращаю и трансортирую, а путь на месте стоит. вроде нормуль стало.
3. ну разумеется первым делом. и quality у графика на скорость перекрутил.
4. Ммм... мне-то по-любому весь бокс надо обновлять - при сдвиге обновляется каждый пиксел.
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 16.11.06 23:25
Кстати да.. вполне разумное решение.. Что-то я о нем и не вспомнил даже..