![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| polosatij |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 1 Всего: 8 |
сначало нарисовать 10 картинок.. потом показать их пользователю.. как осуществить?
народ.. представьте, что одна картина складывается при помощи многих.. так вот, если каждую картинку показывать юзеру на экране, то, естественно всё мигает как мне сначало нарисовать картинки, а потом показать их? я не могу себе позволить работать пиксельно с большими Array-ами, так как всё будет тормозить НА НЕТ мне нужна здесь если не молнееносная реакция, то хотябы приблежение к ней.. может кто что хорошее предложит |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
я не понял, как нарисовать и что нарисовать? если задача в том, чтобы сделать из 10 разных картинок 1 рисунок, то нужно просто создать BufferedImage, взять у него графику (getGraphics()) и нарисовать туда эти рисунки.
-------------------- |
|||
|
||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 1 Всего: 21 |
Если нужно, чтобы 10 отдельных картинок только "выглядели", как одна, то можно использовать JLayeredPane, разместив каждую картинку в отдельном слое, самый верхний слой предварительно "залить" каким-нибудь нейтральным фоном. По окончании загрузки всех картинок "утопить" (moveToBack) верхний слой и перерисовать JLayeredPane
-------------------- Хотите поговорить об этом? |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Окончание загрузки не означает что все картинки будут прорисовываться одновременно и не будет мерцания. В момент "утопления" верхнего слоя мы получим то же самое, что было бы при прорисовке картинок на одной панели.
Мерцание возникает из-за того, что прорисовать 10 рисунков медленнее, чем один большой. Потому лучше рисовать в один рисунок, тем более что если его составляющие со временем не меняются, то нужно будет делать эту прорисовку 1 раз. Это называется двойным буффированием. -------------------- |
|||
|
||||
| polosatij |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 1 Всего: 8 |
что-то не получается у меня.. где я ошибаюсь
где я ошибся? Добавлено @ 09:08
нет.. у меня не получиться этого.. картинка каждый раз - разная.. возможных вариантов 100^100, если не больше.. |
||||||
|
|||||||
| Domestic Cat |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Насчет черного фона - нужно канве сделать setOpaque.
ну так тем более -------------------- |
||||
|
|||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 1 Всего: 21 |
Никак не удается воспроизвести мерцание при отображения 10 отдельных фрагментов общей картинки (PIII-800, ОЗУ 512, Win2000, JDeveloper10) при использовании JLayeredPane.
-------------------- Хотите поговорить об этом? |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
И не получится без дабл баффера, хоть тут в лепешку расшибись
-------------------- |
|||
|
||||
| igon |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 1 Всего: 21 |
=> для мерцания нужен дабл баффер => счастье - это когда тебя понимают -------------------- Хотите поговорить об этом? |
||||
|
|||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Извиняюсь - действительно не разобрался
Проблемкa будет если тебe нужнo постоянно меняtь рисунок или его части (непрерывно). Поскольку здесь речь об игре, то я предполагаю что-то вроde этогo. Тогдa прорисовыват' придется нe 1 раз, а Н раз в секунду, ну i тогда мерцание будет -------------------- |
|||
|
||||
| igon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 327 Регистрация: 30.10.2004 Репутация: 1 Всего: 21 |
Мдя, похоже, я опять не совсем понял исходную проблему - подразумевалась-то, оказывается, анимация. В этом случае ты прав: о такой проблеме я слыхал и решается она как раз двойной буферизацией (сам, увы, не сталкивался). Хотя, таскание мышой одного (величиной с полэкрана) фрагмента при наличии других - чем не анимация? А мерцание так таки и не появилось, несмотря на усердие в таскании (уж и не знаю,
-------------------- Хотите поговорить об этом? |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
Ну вроде как polosatij об игрe говорил. А насчет таскания мышой - там fps поменьше
-------------------- |
|||
|
||||
| polosatij |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 1 Всего: 8 |
млин.. Domestic Cat, мучаюсь всё ещё с Траблой..
очень долго не мог понять где ошибка.. и теперь вижу, что перерисовка BufferedImage мне ничего не даёт.. почему-то содержание остаётся прежним.. странно.. мне нужно как-нибудь очищать содержимое BufferedImage странно.. в paint-е всё получается замечательно (можно проверить, поменяв активное окно), а вот те же самые строчки в анонимном классе (при нажатии мыши) не работают.. хм.. |
|||
|
||||
| Domestic Cat |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5452 Регистрация: 3.5.2004 Где: Dallas, US Репутация: 50 Всего: 172 |
А можно код твой посмотреть? А то так непонятно.
-------------------- |
|||
|
||||
| polosatij |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1143 Регистрация: 22.2.2004 Где: Stuttgart<-> ;Karlsruhe, Germany Репутация: 1 Всего: 8 |
млин.. не знаю.. может BufferedImage надо затерать прежде? может другой использовать? может еще что ------------------- посмотрел вчера, оказывается в Canvas вообще ничего нарисовать нельзя!!! может быть можно, но оно не отображается Это сообщение отредактировал(а) polosatij - 22.11.2004, 14:34 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |