JanvanB
Neues Mitglied
- 0
Hallo,
Bin ein blutiger Anfänger im programmieren und hab jetzt endlich mal eine App zusammen bekommen die bis zum Game Over geht.
Wie kriege ich es jetzt aber hin wenn das Spiel zu Ende ist es wieder neu zu starten? Das Spiel ist zu Ende und man kann auf dem Bildschirm nichts mehr drücken um das Spiel wieder zu starten. Was muss ich da tun?????
Ich starte das Spiel mit einem Button (btn) dann kann ich alle Käfer zerdrücken (OnClick Listener auf die Käfer drücken) und dann ist das Game over.
Welchen Befehl benötige ich jetzt dass das Spiel wieder von neuem beginnt (würde gerne den wbtn button dafür nutzen)?
Vielen Dank im Voraus!
Main Activity:
public class MainActivity extends AppCompatActivity {
// Umschalter
private boolean Start = true;
// "Game-Speed"
private int Dauer = 3000;
// Spiel-Objekt, Anzahl der Figuren
private GameView Spiel;
private int FZahl = 10;
// Handler-Objekt
private Handler handler = new Handler();
// Runnable-run-Strukturen
private Runnable runnable1 = new Runnable() {
@override
public void run() {
// Alle "geraden" Insekten
for (int nr = 0; nr < FZahl; nr+=2) {
// nur wenn das Insekt noch lebt
if (!Spiel.isKilled(nr))
Spiel.moveObject(nr, R.drawable.insekt2);
}
handler.postDelayed(this, Dauer/2);
}
};
private Runnable runnable2 = new Runnable() {
@override
public void run() {
// Alle "ungeraden" Insekten
for (int nr = 1; nr < FZahl; nr+=2) {
// nur wenn das Insekt noch lebt
if (!Spiel.isKilled(nr))
Spiel.moveObject(nr, R.drawable.insekt2);
}
handler.postDelayed(this, Dauer/2);
}
};
// Layout-Verknüpfungen
private void setImageView() {
ConstraintLayout container = (ConstraintLayout) findViewById(R.id.container);
for (int nr = 0; nr < FZahl; nr++) {
Spiel.Figur[nr] = new ImageView(container.getContext());
container.addView(Spiel.Figur[nr]);
Spiel.setObject(nr);
}
}
@SuppressLint("ClickableViewAccessibility")
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Spiel, "Insekten", Hintergrund, Anzeigen
Spiel = new GameView(this, FZahl);
Spiel.Hgrund = (ImageView) findViewById(R.id.imageView);
Spiel.Hgrund.setScaleType(ImageView.ScaleType.FIT_XY);
Spiel.btn = (Button) findViewById(R.id.button);
Spiel.wbtn = (Button) findViewById(R.id.button2);
//Spiel.wbtn.setVisibility(View.INVISIBLE);
final TextView Anzeige1 = (TextView) findViewById(R.id.textView);
final TextView Anzeige2 = (TextView) findViewById(R.id.textView2);
setImageView();
Spiel.setDelay(Dauer);
/*// Figuren anzeigen
for (int nr = 0; nr < FZahl; nr++)
Spiel.showObject(nr, R.drawable.insekt2); */
// Touch-Struktur
Spiel.btn.setOnTouchListener(new View.OnTouchListener() {
@override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (Start) {
Spiel.btn.setVisibility(View.INVISIBLE);
//Spiel.wbtn.setVisibility(View.INVISIBLE);
handler.post(runnable1);
handler.postDelayed(runnable2, Dauer/2);
for (int nr = 0; nr < FZahl; nr++)
Spiel.showObject(nr, R.drawable.insekt2);
}
// Ausschalten
Start = false;
// Rückgabewert
return false;
}
});
for (int nr = 0; nr < FZahl; nr++) {
Spiel.Figur[nr].setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View view) {
// falls noch nicht gestartet, Methode verlassen
if (Start) return;
// Zähler auf null
int Treffer = 0;
// getroffenes Insekt ermitteln
for (int nr = 0; nr < FZahl; nr++) {
// ggf. "killen"
if (view == (ImageView) Spiel.Figur[nr])
Spiel.killObject(nr, R.drawable.insekt2x);
// mitzählen
if (Spiel.isKilled(nr)) Treffer++;
}
// ggf. Spiel-Ende anzeigen und beenden
if (Treffer == FZahl) {
Anzeige2.setText(R.string.game_over);
handler.removeCallbacks(runnable1);
handler.removeCallbacks(runnable2);
Spiel.wbtn.setVisibility(View.VISIBLE);
}
// Punkte anzeigen
Anzeige1.setText(String.valueOf(Treffer));
}
});
}
}
}
Bin ein blutiger Anfänger im programmieren und hab jetzt endlich mal eine App zusammen bekommen die bis zum Game Over geht.
Wie kriege ich es jetzt aber hin wenn das Spiel zu Ende ist es wieder neu zu starten? Das Spiel ist zu Ende und man kann auf dem Bildschirm nichts mehr drücken um das Spiel wieder zu starten. Was muss ich da tun?????
Ich starte das Spiel mit einem Button (btn) dann kann ich alle Käfer zerdrücken (OnClick Listener auf die Käfer drücken) und dann ist das Game over.
Welchen Befehl benötige ich jetzt dass das Spiel wieder von neuem beginnt (würde gerne den wbtn button dafür nutzen)?
Vielen Dank im Voraus!
Main Activity:
public class MainActivity extends AppCompatActivity {
// Umschalter
private boolean Start = true;
// "Game-Speed"
private int Dauer = 3000;
// Spiel-Objekt, Anzahl der Figuren
private GameView Spiel;
private int FZahl = 10;
// Handler-Objekt
private Handler handler = new Handler();
// Runnable-run-Strukturen
private Runnable runnable1 = new Runnable() {
@override
public void run() {
// Alle "geraden" Insekten
for (int nr = 0; nr < FZahl; nr+=2) {
// nur wenn das Insekt noch lebt
if (!Spiel.isKilled(nr))
Spiel.moveObject(nr, R.drawable.insekt2);
}
handler.postDelayed(this, Dauer/2);
}
};
private Runnable runnable2 = new Runnable() {
@override
public void run() {
// Alle "ungeraden" Insekten
for (int nr = 1; nr < FZahl; nr+=2) {
// nur wenn das Insekt noch lebt
if (!Spiel.isKilled(nr))
Spiel.moveObject(nr, R.drawable.insekt2);
}
handler.postDelayed(this, Dauer/2);
}
};
// Layout-Verknüpfungen
private void setImageView() {
ConstraintLayout container = (ConstraintLayout) findViewById(R.id.container);
for (int nr = 0; nr < FZahl; nr++) {
Spiel.Figur[nr] = new ImageView(container.getContext());
container.addView(Spiel.Figur[nr]);
Spiel.setObject(nr);
}
}
@SuppressLint("ClickableViewAccessibility")
@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Spiel, "Insekten", Hintergrund, Anzeigen
Spiel = new GameView(this, FZahl);
Spiel.Hgrund = (ImageView) findViewById(R.id.imageView);
Spiel.Hgrund.setScaleType(ImageView.ScaleType.FIT_XY);
Spiel.btn = (Button) findViewById(R.id.button);
Spiel.wbtn = (Button) findViewById(R.id.button2);
//Spiel.wbtn.setVisibility(View.INVISIBLE);
final TextView Anzeige1 = (TextView) findViewById(R.id.textView);
final TextView Anzeige2 = (TextView) findViewById(R.id.textView2);
setImageView();
Spiel.setDelay(Dauer);
/*// Figuren anzeigen
for (int nr = 0; nr < FZahl; nr++)
Spiel.showObject(nr, R.drawable.insekt2); */
// Touch-Struktur
Spiel.btn.setOnTouchListener(new View.OnTouchListener() {
@override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (Start) {
Spiel.btn.setVisibility(View.INVISIBLE);
//Spiel.wbtn.setVisibility(View.INVISIBLE);
handler.post(runnable1);
handler.postDelayed(runnable2, Dauer/2);
for (int nr = 0; nr < FZahl; nr++)
Spiel.showObject(nr, R.drawable.insekt2);
}
// Ausschalten
Start = false;
// Rückgabewert
return false;
}
});
for (int nr = 0; nr < FZahl; nr++) {
Spiel.Figur[nr].setOnClickListener(new View.OnClickListener() {
@override
public void onClick(View view) {
// falls noch nicht gestartet, Methode verlassen
if (Start) return;
// Zähler auf null
int Treffer = 0;
// getroffenes Insekt ermitteln
for (int nr = 0; nr < FZahl; nr++) {
// ggf. "killen"
if (view == (ImageView) Spiel.Figur[nr])
Spiel.killObject(nr, R.drawable.insekt2x);
// mitzählen
if (Spiel.isKilled(nr)) Treffer++;
}
// ggf. Spiel-Ende anzeigen und beenden
if (Treffer == FZahl) {
Anzeige2.setText(R.string.game_over);
handler.removeCallbacks(runnable1);
handler.removeCallbacks(runnable2);
Spiel.wbtn.setVisibility(View.VISIBLE);
}
// Punkte anzeigen
Anzeige1.setText(String.valueOf(Treffer));
}
});
}
}
}