В libgdx, screen.setScreen()
не вызывается автоматически автоматически. Внутри переопределенного setScreen мне нужно сначала позвонить screen.dispose
, а затем позвонить super.setScreen
или позвонить позже? Я знаю, это может показаться дублирующим вопросом, но все же я хотел знать, потому что super.setScreen
звонит screen.hide
. Является ли звонок hide
после dispose
безопасным временем? Это плохая практика? Я делаю 3D-игру на основе this и this. Здесь я продолжаю GameName
класс Game
и пытается переопределить setScreen
, чтобы вызвать dispose, если экран не равен null, а затем вызовите super.setScreen
.Безопасно ли вызывать Screen.hide() после Screen.dispose() в LibGDX?
ответ
screen.dispose()
никогда не вызывается LibGDX. Вы должны сделать это вручную самостоятельно, прежде чем отбрасывать ссылку на свой экран. Если вы не планируете повторно использовать экземпляр Screen, то screen.hide()
звоните screen.dispose()
- это идеальное место для этого.
screen.hide()
никогда не вызывается в ответ на события Android.
Я не рекомендую переопределять game.setScreen()
, чтобы избавиться от экранов, если вы точно не знаете, что вы никогда не захотите повторно использовать какие-либо экземпляры экрана. В большинстве простых игр вы хотите повторно использовать их, а не тратить время на разгрузку и перезагрузку активов.
Два типа одноразовых активов (SpriteBatch, Texture, Stage, ...), один используется на другом экране, а другой - для конкретного экрана.
Общие активы должны быть удалены из метода игры
dispose()
.Экран конкретных активов должен быть удален с помощью метода Screen, но экран dispose() никогда не вызывается, поэтому вам нужно явно его называть.
При изменении метода экрана называется, так что вы должны вызвать метод dispose()
из hide()
метода экрана hide()
.
- 1. Безопасно ли вызывать dlclose после dlsym
- 2. Безопасно ли вызывать себя в std :: async
- 3. Безопасно ли вызывать «plink.exe» в приложении
- 4. Безопасно ли вызывать. Закрыть (.Dispose) на EventWaitHandle непосредственно после .Set?
- 5. Безопасно ли вызывать CFRunLoopStop из другого потока?
- 6. Безопасно ли вызывать printk внутри spin_lock_irqsave?
- 7. Безопасно ли вызывать RCW из финализатора?
- 8. Безопасно ли вызывать PHP-файл из JavaScript?
- 9. Безопасно ли вызывать $ (document) .ready() изнутри функции?
- 10. C# Безопасно ли вызывать «BackgroundWorker» внутри «using»?
- 11. Безопасно ли вызывать pthread_mutex_lock перед pthread_mutex_init?
- 12. Безопасно ли вызывать timer_pending() перед init_timer()?
- 13. Безопасно ли вызывать функции указателей функций?
- 14. Безопасно ли вызывать API Sidekiq изнутри?
- 15. Безопасно ли вызывать TWinControl.Update из TGraphicControl.Paint?
- 16. Безопасно ли вызывать LoadLibrary из main()?
- 17. Безопасно ли вызывать метод View.post (runnable) в основном потоке?
- 18. RactiveJS - когда безопасно вызывать find (...)
- 19. Безопасно ли вызывать параметры в тонком шаблоне в рельсах?
- 20. Как безопасно вызывать разъединение в Qt?
- 21. Когда безопасно вызывать виртуальную функцию в конструкторе
- 22. Android - насколько безопасно вызывать startActivityForResult в onActivityResult?
- 23. Безопасно ли вызывать loadData() WebView в потоке пользовательского интерфейса?
- 24. Безопасно ли вызывать getrawmonotonic() в обработчике прерываний Linux?
- 25. Безопасно ли вызывать fireTableRowsUpdated() в потоке отправки, отличном от события?
- 26. Безопасно ли вызывать другие виртуальные методы в виртуальном деструкторе?
- 27. Безопасно ли вызывать dict .__ init__ в уже заполненном словаре?
- 28. Безопасно ли вызывать remove() для удаления файлов в деструкторе?
- 29. Безопасно ли вызывать размер в контейнере std из другого потока?
- 30. Безопасно ли вызывать статический синхронизированный метод из несвязанных классов?
Но в Android hide вызывается, когда пользователь получает вызов или проигрывает фокус. Так что добавление утилиты внутри скрыть - плохая идея. – Anutrix
@Anutrix, что вы думаете, что экран скрывает() метод вызова Android's hide(). Оба метода различны. – Aryan
@ Анутрикс, нет, это не так. 'pause()' вызывается, когда игра теряет фокус, но не 'hide()'. – Tenfour04