Loading...
g.kolev avatar g.kolev 82 Точки

[Java Game] Проблем със swing

Здравейте. 

Имам проблем срързан с отборния проект по Java Fundamentals курса. Той е свързан и прерисуването на фона всеки път когато той свърши, понеже самият фон се движи непрекъснато за да създаде илюзията за движението. Когато това се случва се появява доста забележимо забавяне и драстично падане на кадрите изрисувани за една секунда.

Ползвам swing библиотеката, която мисля, че причинява този проблем. Като изключим това мисля, че покрих всички възможни причинители на това, ползвах Буфериран поток при четенето на снимката, не ползвма Thread.Sleep никъде.

Има ли начин да отстраня проблема без да сменям библиотеката? 

https://github.com/TeamCyllene/TeamCyllene

Поздрави.

Тагове:
0
Fundamentals Module
Innos avatar Innos 419 Точки
Best Answer

Както Фил ти е писал, проблема ти е в зареждането ,нищо чудно че ти сече, ти зареждаш картинката с Image loader-a всеки път като повикаш render методът. Зареждането на визуален ресурс от харддиска е тежка операция, ресурсите се зареждат 1 път и се преизползват, може да си ги заредиш в статични полета в Assets класът, примерно така:

public static BufferedImage healthbar = ImageLoader.loadImage("/images/HealthBar.png");

и вече ще имаш променлива healthbar която реално ти е изображението. Като искаш да нарисуваш фона ще викаш името на променливата.

1
08/11/2015 02:11:18
g.kolev avatar g.kolev 82 Точки

Благодаря!
Всичко работи добре вече.

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.