當我開始我的遊戲黑屏時,因爲資源正在加載一段時間。 我完成了一個教程,其中展示瞭如何顯示進度條,同時領先資源我跟着它,現在我可以看到進度條。但問題是,當進度條可見時,其他所有東西都會停止。沒有任何反應。只有一個黑屏和一個進度條就可以了。任何人都可以告訴我爲什麼每件事都暫停,爲什麼loadresources和loadscene方法不起作用?請提供解決方案。在AndEngine中加載紋理時的進度條
1
A
回答
0
您需要在工作線程中加載資源。這樣做的好用處是AsyncTask。指南主題Processes and Threads解釋了爲什麼你需要這樣的東西,以及示例代碼顯示如何做一個簡單的AsyncTask
,可能正是你需要的。
0
從Engine.java:
public void onDrawFrame(final GLState pGLState) throws InterruptedException {
final EngineLock engineLock = this.mEngineLock;
engineLock.lock();
try {
engineLock.waitUntilCanDraw();
this.mVertexBufferObjectManager.updateVertexBufferObjects(pGLState);
this.mTextureManager.updateTextures(pGLState);
this.mFontManager.updateFonts(pGLState);
this.onUpdateDrawHandlers(pGLState, this.mCamera);
this.onDrawScene(pGLState, this.mCamera);
engineLock.notifyCanUpdate();
} finally {
engineLock.unlock();
}
}
這就是爲什麼發動機掛起和UI卡住。當紋理被加載到硬件中時,可以顯示加載屏幕,而不會被凍結,比如ProgressBar
。這並不容易,需要大量的代碼,但它可能並且不需要瘋狂的黑客攻擊,只是一些邏輯。
你需要有一個資源管理器(RM)和場景管理器(SM)誰一起工作(與AsyncTasks
),負責加載紋理當前場景。由於您的帳戶號碼爲BaseGameActivity
,因此您可以使用此Activity
實例來顯示帶有進度欄的全屏Dialog
。其中的邏輯是:
- SM被要求出示A場景
- SM顯示加載
Dialog
- SM異步告訴RM到所有A場景資源加載到硬件(每個紋理場景A,texture.load)
- RM 「onSceneTexturesLoadComplete」 講述SM所有紋理加載
由於texture.load不能保證紋理實際上被加載,所以你需要有一個TryToDismissDialog
,它可以擴展TimerTask
。這TryToDismissDialog
不時會查詢A場景紋理和檢查,如果他們是實際加載:
if (texturePack.getTexture().isLoadedToHardware()) {
texturesLoaded++;
}
如果所有紋理加載您關閉Dialog
,瞧你會看到的場景做好準備。
希望它有幫助
ps:這實際上涉及到一些代碼行,我剛剛在這裏發佈了一個快速步驟/指南/僞代碼。我不會發布最終的解決方案,因爲它很沉重,並且「與項目相關」。
相關問題
- 1. DirectX 9「加載紋理」進度條
- 2. 瞭解andengine紋理加載
- 3. 使用TexturePacker加載紋理(AndEngine)
- 4. 在Android中加載數組中的多個紋理Andengine
- 5. Flickery紋理在andEngine
- 6. andengine中的Distorb/warp紋理
- 7. Andengine動態紋理有時無法加載
- 8. 使用XHR進度事件在Three.js中加載紋理
- 9. 加載紋理不正確的紋理寬度/高度
- 10. AndEngine紋理錯誤
- 11. 在Android中加載Imageview的進度條
- 12. Android Webview加載時的進度條
- 13. 加載網頁時的進度條/ android
- 14. 加載splashscreen時的進度條
- 15. 在three.js中加載紋理
- 16. 在Init中加載紋理()
- 17. 在AndEngine中修改紋理像素
- 18. 在AndEngine中沿紋理區域獲取額外線條(Android)
- 19. XNA紋理加載速度(對於超大的紋理尺寸)
- 20. 下載時的進度條
- 21. 如何在bootstrap中加載進度條?
- 22. 在flex中加載進度條
- 23. 紋理加載
- 24. 加載UI時創建進度條
- 25. 加載時顯示進度條
- 26. 數據加載時顯示進度條
- 27. RadGrid進度條,同時加載數據
- 28. Android Andengine紋理質量差
- 29. AndEngine紋理可繪製
- 30. AndEngine紋理帕克錯誤
實際上引擎本身加載資源。我的問題是,爲什麼Engine上有一個對話框或進度條時會暫停。我如何手動恢復它。 –
@Jawad Amjad檢查我的答案吼聲。希望能幫助到你 ;) – GuilhE