Czy to dobra praktyka, by wyłączać program gdy ładowanie tekstury zakończone niepowodzeniem?
Ostatnio zmodyfikowano dzisiaj: 58 min
tBane Temat założony przez niniejszego użytkownika |
Czy to dobra praktyka, by wyłączać program gdy ładowanie tekstury zakończone niepowodzeniem? » 2026-01-14 15:32:23 Cześć. Wpadłem na pewien pomysł, by w funkcji draw najpierw ładować tekstury, sprawdzać czy są załadowane jeżeli nie to wywalić z programu bo error i dopiero później sprajty renderować. Czy to dobra praktyka? ps. nie wiem jak nazwać temat :-/ pierwotny kod public void draw() {
Texture backgroundTexture = AssetsManager.getTexture("tex/gameBoard.png"); if(backgroundTexture!=null){ Sprite background = new Sprite(backgroundTexture); background.setPosition(0,0 ); background.draw(Renderer.spriteBatch); }
Texture topPanelTexture = AssetsManager.getTexture("tex/topPanel.png"); if(topPanelTexture != null){ Sprite topPanel = new Sprite(topPanelTexture); topPanel.setPosition(0,Renderer.VIRTUAL_HEIGHT - topPanel.getHeight() ); topPanel.draw(Renderer.spriteBatch); } }
nowy kod public void draw() {
Texture backgroundTexture = AssetsManager.getTexture("tex/gameBoard.png"); Texture topPanelTexture = AssetsManager.getTexture("tex/topPanel.png");
if(backgroundTexture ==null) { System.out.println("backgroundTexture loaad failed"); exitProgram(); } if(topPanelTexture == null) { System.out.println("topPanelTexture loaad failed"); exitProgram(); } Sprite background = new Sprite(backgroundTexture); background.setPosition(0,0 ); background.draw(Renderer.spriteBatch);
Sprite topPanel = new Sprite(topPanelTexture); topPanel.setPosition(0,Renderer.VIRTUAL_HEIGHT - topPanel.getHeight() ); topPanel.draw(Renderer.spriteBatch);
}
|
|
pekfos |
» 2026-01-14 16:09:59 Ładowanie tekstur w taki sposób spowoduje przycięcie gry w przypadku gdy potrzebujesz cięższego zasobu, zwłaszcza gdy nośnik danych jest wolny. Lepiej to zrobić wcześniej, a jeżeli to będzie trwało, to dodać ekran ładowania. Co do obsługi błędów, to lepiej użyć tekstury zastępczej (dobrze widocznej, np siatka z jaskrawymi kolorami) niż wywalić program. Powiedzmy że masz grę w której brakuje 10 tekstur. Żeby to wykryć musisz 10 razy uruchomić program i nakłonić go by w ogóle chciał sięgnąć po tą teksturę. getTexture powinno odpowiadać za zalogowanie komunikatu błędu na konsoli i zwrócenie zastępczej tekstury. Wtedy tekstura zawsze istnieje i nie musisz za każdym razem sprawdzać zwracanej wartości. |
|
| « 1 » |