Hallo.
Ich habe hier wieder einmal ein kleines Problem mit meinem Spiel. Dazu:
Es spielt während des Spiels eine Hintergrundmusik. Wenn das Spiel verloren wird, kommt eben ein alert, der sagt, dass so und so viele Punkte erreicht wurden und ob man das Spiel fortsetzen möchte. Klickt man hier auf ja und startet ein neues Spiel, soll eigentlich die Spielmusik wieder beginnen und die "Alert"-Musik beendet werden, was aber bei mir nicht richtig funktioniert, denn die "Alert"-Musik stoppt zwar, aber die Spielmusik fängt nicht wieder an zu spielen (trotz backSound.start()). Ich habe mal einen Teil meiner MainActivity angehangen, vielleicht sieht jemand das Problem auf Anhieb!
Ich habe hier wieder einmal ein kleines Problem mit meinem Spiel. Dazu:
Es spielt während des Spiels eine Hintergrundmusik. Wenn das Spiel verloren wird, kommt eben ein alert, der sagt, dass so und so viele Punkte erreicht wurden und ob man das Spiel fortsetzen möchte. Klickt man hier auf ja und startet ein neues Spiel, soll eigentlich die Spielmusik wieder beginnen und die "Alert"-Musik beendet werden, was aber bei mir nicht richtig funktioniert, denn die "Alert"-Musik stoppt zwar, aber die Spielmusik fängt nicht wieder an zu spielen (trotz backSound.start()). Ich habe mal einen Teil meiner MainActivity angehangen, vielleicht sieht jemand das Problem auf Anhieb!
Java:
public class MainActivity extends ActionBarActivity {
GLSurfaceView frSurfaceView;
ShipRenderer frRenderer;
MediaPlayer backSound;
MediaPlayer backSound2;
SoundPool gameSounds;
int soundIds[] = new int[5];
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
frSurfaceView=new shipSurfaceView(this);
setContentView(frSurfaceView);
registerReceiver(new broadcastReceiver(), new IntentFilter("showAlert"));
backSound = MediaPlayer.create(this, R.raw.backsound);
backSound.setLooping(true);
backSound.setVolume(0.7f, 0.7f);
backSound2 = MediaPlayer.create(this, R.raw.backsound2);
backSound2.setLooping(true);
backSound2.setVolume(0.7f, 0.7f);
backSound.start();
gameSounds = new SoundPool(5,AudioManager.STREAM_MUSIC,0);
soundIds[0] = gameSounds.load(this, R.raw.crash,1);
soundIds[1] = gameSounds.load(this, R.raw.rebel,2);
soundIds[2] = gameSounds.load(this, R.raw.addlife,3);
soundIds[3] = gameSounds.load(this, R.raw.chewie,4);
soundIds[4] = gameSounds.load(this, R.raw.x2,5);
}
@Override
protected void onStop() {
backSound.stop();
backSound2.stop();
super.onStop();
}
public class broadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent){
if(intent.getAction() == "showAlert") showAlert();
}
}
public void showAlert() {
AlertDialog.Builder builder = new AlertDialog.Builder(this); //Erzeugen des Punktefenster
backSound.stop();
backSound2.start();
builder.setMessage("Du hast " + (int)frRenderer.level.points + " Punkte erreicht. Neuer Versuch?");
builder.setCancelable(false);
builder.setPositiveButton("Ja, die Macht ist stark in mir...", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
backSound2.stop();
float shipCenter = frRenderer.ship.vertices[5] + ((frRenderer.ship.vertices[1] - frRenderer.ship.vertices[5]) / 2);
frRenderer.ship.move(-0.8f - shipCenter - (frRenderer.ship.jumping ? 0.07f : 0f)); //setzt Schiff an Anfang zurück
frRenderer.level.lives = 3; //3 Leben
frRenderer.level.points = 0.0f;
frRenderer.level.setPoints(0.0f);
frRenderer.fighters.speed = 1.0f;
frSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);
frRenderer.fighters.lastMoveTime = System.nanoTime();
backSound.start();
}
});
builder.setNegativeButton("Nein, doofes Spiel...", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
System.exit(0);
}
});
AlertDialog alert = builder.create();
alert.show();
}[/Java]
Wäre echt super, wenn wir jemand unter die Arme greifen könnte!:oops:
Beste Grüße