2012-05-04 5 views
5

ich ein Spiel für Android schreibe mit AndEngine GLES 2. Alles funktionierte einwandfrei - ich hatte ein Hintergrundbild, es bewegten sich Sprites und sogar Musik - bis vor kurzem habe ich etwas Neues versucht (ich wollte zwischen zwei verschiedenen Szenen wechseln können), als das Display schwarz wurde.AndEngine GLES 2 - schwarzer Bildschirm, keine Fehler

Ich konnte immer noch das Spiel ausführen und es gab keine Fehler gezeigt. Alle Logeinträge, die ich während des Spiels gemacht habe, wurden gezeigt, sogar die Musik spielte, also wusste ich, dass das Spiel "richtig" lief, aber ich konnte kein Bild sehen. Nichts. Alles schwarz. So

dachte ich, alles wieder zu ändern, bevor diese „Fehler“ erschien, würde den Trick. Aber immer noch ist der Bildschirm schwarz.

ich sogar versucht, alles zu kommentieren, aber das Hintergrundbild - nichts.

Nun, wenn es nicht zu viel ist, zu fragen, könnte jemand bitte dieses kurze Stück Code überblicken und mir sagen, was es ist falsch?

Dies sind die Variablen Ich verwende:

private SmoothCamera camera; 
private BitmapTextureAtlas bitmapTextureAtlas; 
private Scene scene; 
private Sprite background; 

Die EngineOptions ich nie geändert, so sollten sie in Ordnung sein.

@Override 
public EngineOptions onCreateEngineOptions() { 
    float positionX = 80f; // horizontal (x) position of the camera 
    float positionY = 280f; // vertical (y) position of the camera 
    float velocityX = 200f; // velocity of the horizontal camera movement 
    float velocityY = 200f; // velocity of the vertical camera movement 
    float zoomFactor = 1f; // the camera's zoom Factor (standard := 1) 
    this.camera = new SmoothCamera(positionX, positionY, this.getWindowManager().getDefaultDisplay().getWidth(), this.getWindowManager().getDefaultDisplay().getHeight(), velocityX, velocityY, zoomFactor); 
    EngineOptions options = new EngineOptions(true, ScreenOrientation.LANDSCAPE_SENSOR, new RatioResolutionPolicy(this.camera.getWidth(), this.camera.getHeight()), this.camera); 
    return options; 
} 

Hier erstelle ich die TextureAtlas und laden ein Hintergrundbild.

@Override 
protected void onCreateResources() { 
    // create the TextureAtlas 
    BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); 
    this.bitmapTextureAtlas = new BitmapTextureAtlas(this.getTextureManager(), 1024, 1600, TextureOptions.NEAREST); 

    // background 
    this.background = new Sprite(0, 0, BitmapTextureAtlasTextureRegionFactory.createTiledFromAsset(this.bitmapTextureAtlas, this, "background.png", 0, 0, 1, 1), this.getVertexBufferObjectManager()); 
    this.mEngine.getTextureManager().loadTexture(this.bitmapTextureAtlas); 
} 

Und schließlich die Szene instanziiert und der Hintergrund angebracht wird.

@Override 
protected Scene onCreateScene() { 
    this.scene = new Scene(); 
    this.scene.attachChild(this.background);   
    return this.scene; 
} 

Nun, warum würde diese kleine Aktivität nicht angezeigt? Ich habe vergessen: es ist eine SimpleBaseGameActivity.

Nun, da AndEngine GLES2 ist nicht auf dem Emulator ausgeführt, ich habe mein Telefon benutzen (Samsung Galaxy GIO) und kann die App auf einem anderen Rechner nicht testen.

Hat jemand auf ein ähnliches Problem stolpern? Jede Hilfe wird wirklich sehr geschätzt und danke für Ihre Zeit!

  • Christoph
+0

in Ordnung sein, habe ich eine neues Projekt mit nur dieser Aktivität oben. Es hat nicht funktioniert - und immer noch keine Fehlermeldungen. Jetzt bin ich komplett verloren ... – GameDroids

+2

Das Problem ist jetzt weg ... Ich kann nicht sagen, dass es gelöst ist, da ich immer noch keine Ahnung habe, was schief gelaufen ist, aber es funktioniert wieder (naja, nur der Hintergrund Bildschirm, nicht das komplette Spiel, das ich vorher hatte) Nach vielen Jahren in der Informatik, dachte ich "Haben Sie versucht, es aus- und wieder einzuschalten?"Lösung könnte immer vermieden werden - falsch! Nach der Deinstallation und Löschen jeder Spur meiner App von meinem Telefon und Neustart alles funktioniert plötzlich wieder. Sorry, wenn ich Ihre Zeit verschwendet. Hoffe, dass" Ding "nie wieder passiert! grüße christoph – GameDroids

Antwort

1

denke ich, ist das Problem hier:

this.bitmapTextureAtlas = new BitmapTextureAtlas(this.getTextureManager(), 1024, 1600, TextureOptions.NEAREST); 

Die Abmessungen des Atlas sollen Potenzen von 2

+1

ja, leider sollte der atlas noch eine größe von 2 haben. GLES 2 soll zwar atlas in jeder größe unterstützen, allerdings haben einige geräte immer noch probleme, ich habe nur 1024x1024 atlas benutzt (größer würde nicht auf allen funktionieren) nach diesem Problem und es ist nie wieder aufgetreten. – GameDroids

+1

Ich hatte gerade einen schwarzen Bildschirm auf einigen Geräten. Der Grund dafür war eine zu große Textur Atlas (4096 * 1024). Aber eine kleinere (1024 * 2048) funktioniert gut. – Yar