@Override
public void render(float delta) {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
camera.update();
sprite.setProjectionMatrix(camera.combined);
mLevel.getTiledMapRenderer().getProjectionMatrix().set(camera.combined);
Vector3 tmp = new Vector3();
tmp.set(0, 0, 0);
camera.unproject(tmp);
mLevel.getTiledMapRenderer().render(tmp.x, tmp.y, camera.viewportWidth, camera.viewportHeight);
sprite.begin();
...
sprite.end();
}
यहाँ मैं क्या मिलता है जब डेस्कटॉप संस्करण की शुरूआत:LibGDX - आवेदन दुर्घटनाओं जब कॉल TiledMapRenderer.render()
Exception in thread "LWJGL Application" java.lang.IllegalArgumentException: Number of remaining buffer elements is 0, must be at least 1. Because at most 1 elements can be returned, a buffer with at least 1 elements is required, regardless of actual returned element count
at org.lwjgl.BufferChecks.throwBufferSizeException(BufferChecks.java:162)
at org.lwjgl.BufferChecks.checkBufferSize(BufferChecks.java:189)
at org.lwjgl.BufferChecks.checkBuffer(BufferChecks.java:230)
at org.lwjgl.opengl.GL15.glBufferData(GL15.java:141)
at com.badlogic.gdx.backends.lwjgl.LwjglGL20.glBufferData(LwjglGL20.java:93)
at com.badlogic.gdx.graphics.glutils.VertexBufferObject.bind(VertexBufferObject.java:208)
at com.badlogic.gdx.graphics.Mesh.bind(Mesh.java:268)
at com.badlogic.gdx.graphics.g2d.SpriteCache.begin(SpriteCache.java:868)
at com.badlogic.gdx.graphics.g2d.tiled.TileMapRenderer.render(TileMapRenderer.java:336)
at com.badlogic.gdx.graphics.g2d.tiled.TileMapRenderer.render(TileMapRenderer.java:286)
at com.crunsh.libgdx.screens.GameScreen.render(GameScreen.java:102)
at com.badlogic.gdx.Game.render(Game.java:46)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:202)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:131)
मैं दोनों this tuto और this one की कोशिश की है, और मैं एक ही त्रुटि मिलती है उसी पंक्ति पर mLevel.getTiledMapRenderer().render(tmp.x, tmp.y, camera.viewportWidth, camera.viewportHeight);
।
संपादित करें: मैंने अभी देखा है कि मेरी .tmx फ़ाइल का डेटा स्वचालित रूप से टाइल किए गए मानचित्र संपादक द्वारा एन्कोड किया गया था, इसलिए मैंने इसे अभी निष्क्रिय कर दिया, लेकिन फिर भी वही त्रुटि प्राप्त हुई।
अगर मैं कॉपी/पेस्ट this project (मैं पूरी परियोजना मतलब है, न केवल प्रस्तुत करना() विधि) यह काम करता है, लेकिन अपने ही परियोजना यह सिर्फ दुर्घटनाओं में अपने खुद के मानचित्र लोड करने के लिए जब मैं कोशिश ...
तो उस के बाद मैं सिर्फ कड़ी मैं पूर्व में दी गई की तरह कार्य करके और TiledMapHelper class
लेखक प्रदान का उपयोग करके अपनी render()
विधि को आसान बनाने का फैसला किया, तो मेरे render()
विधि अब वहाँ है:
mHelper.getCamera().update();
mHelper.render();
फिर भी crashiiiiiiiiiiiiiingg .....
अगर कोई मदद कर सकता है तो कृपया कुछ मदद मिलेगी खासतौर से सराहना की क्योंकि एटीएम मैं वास्तव में पागल हो रहा हूँ!
मैंने एक समान अपवाद देखा है जब मैंने अपनी जाल परिभाषाओं को गड़बड़ कर दिया है (या तो ऊर्ध्वाधर लोड करने या लंबाई को शून्य पर सेट करना भूलना)। तो, संभवतः आपके टाइल मानचित्र परिभाषा के साथ कुछ गलत है। यह देखने के लिए जांचें कि क्या आकार/स्केल आवश्यकताएं हैं (जैसे 2 या कम से कम एक्स, या ऐसा कुछ) जो आप नहीं मिल रहे हैं। –
आपके उत्तर के लिए धन्यवाद। मैंने अभी जांच की है और सबकुछ 2 की शक्ति है: कैमरे का व्यूपोर्ट, प्रत्येक टाइल का आकार और मेरे स्तर के आकार का आकार जिसमें एक छवि में पैक की गई सभी टाइल्स शामिल हैं। केवल नक्शा का आकार फिट नहीं हुआ, लेकिन इसे बदलने से मेरी समस्या हल नहीं हुई, वैसे भी ट्यूटोरियल 60 * 15 के मानचित्र का उपयोग करता है, इसलिए नक्शा जो प्रदर्शित करता है वह नहीं करता है। – Flawyte