2012-05-04 18 views
5

私はAndEngine GLES 2を使ってAndroid用ゲームを書いています。すべてがうまくいきました - 私は背景画像を持っていました。スプライトが動き回っていて、いくつかの音楽がありました - 最近まで、私はディスプレイが黒くなったときに新しい何かを試しました(私は2つの異なるシーンを切り替えたいと思っていました)。AndEngine GLES 2 - 黒い画面、エラーなし

私はまだゲームを実行することができ、エラーは表示されませんでした。ゲーム中に作ったすべてのログエントリが表示されました。音楽が再生されていても、ゲームが「適切に」実行されていることはわかっていましたが、画像が表示されませんでした。何もない。全部黒。

だから私は、この「エラー」が出る前にすべてを元に戻すことが、このトリックを行うだろうと考えました。しかし、まだ画面は黒です。

私はすべてをコメントアウトしてみましたが、背景イメージは何もコメントしませんでした。

質問があまりにも多くなければ、誰もこの短いコードを見て、何が間違っているのか教えてください。

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

EngineOptions私は変更されませんので、彼らは大丈夫でなければなりません:

これは、私が使用変数です。ここで

@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; 
} 

私はTextureAtlasを作成し、背景画像をロードします。

@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); 
} 

そして最後にシーンインスタンス化され、背景が付属します。

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

なぜこの小さなアクティビティは表示されないのですか?私は忘れてしまった:そのSimpleBaseGameActivity。

AndEngine GLES2がエミュレータで実行されていないため、私は自分の携帯電話(Samsung Galaxy GIO)を使用しなければならず、別のマシンでそのアプリケーションをテストすることができません。

誰もが同様の問題を抱えていましたか? お手数ですが、何卒よろしくお願いいたします。

  • クリストフ
+0

OKのべき乗ことになっている、私が作成しました上記のこのアクティビティだけの新しいプロジェクトそれはうまくいかず、エラーメッセージも表示されませんでした。今、私は完全に失われています... – GameDroids

+2

問題は消えました...何が間違っていたのかまだ分かっていないので、解決できたとは言えませんが、もう一度働いています。スクリーン、私が以前に持っていた完全なゲームではない) コンピュータサイエンスの長年の後、私は "あなたはそれをもう一度切ってみましたか?私の携帯電話からアプリケーションのすべてのトレースをアンインストールして削除し、すべてをリブートした後、突然再び働き始めた。 私はあなたの時間を無駄にして申し訳ありません。 アリスクリスフーフ – GameDroids

答えて

1

私はこの問題はここにあると思う:

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

アトラスの寸法は2

+1

はい、残念ながら、アトラスのサイズは2の累乗でなければなりません.GLES 2はアトラスをサポートしていますが、デバイスによってはまだ問題があります。1024x1024のアトラスしか使用しませんでした – GameDroids

+1

いくつかのデバイスでは黒い画面が表示されていましたが、大きすぎるテクスチャーアトラス(4096 * 1024)の理由がありましたが、小さいもの(1024 * 2048)うまくいく。 – Yar