package spaceinvaders;
import stiftUndCo.*;
import java.awt.Color;
import java.awt.*;
public class TestGUI
{
Bildschirm einFenster;
Maus steuerMaus;
Tastatur tasten;
Zeichen zeichen;
Feind feind1, feind2;
SchiessFeind sFeind;
SchildAnzeige sAnzeige;
PunkteAnzeige pAnzeige;
Raumschiff spieler;
Hindernis hindernis1, hindernis2;
Schuss schuss1, schuss2, schuss3, fSchuss;
Color farbe;
int status, punkte, schusszahl, zeit;
public boolean test1, test2, test3, fTest; // überprüfen, ob der jeweilige Schuss erzeugt wurde
public boolean feindExistenz1, feindExistenz2, schiessFeindEx; // überprüfen, ob der jeweilige Feind erzeugt wurde
public boolean hindPartEx1, hindPartEx2, hindPartEx3, hindPartEx4, hindPartEx5, hindPartEx6; // überprüfen, ob der jeweilige Partikel erzeugt wurde
public TestGUI()
{
einFenster = new Bildschirm("Space Invaders",640,480);
einFenster.setzeHintergrundFarbe(farbe.black);
steuerMaus = new Maus();
tasten = new Tastatur();
zeichen = new Zeichen();
feind1 = new Feind(30,80,farbe.white);
feindExistenz1 = true;
feind2 = new Feind(80,80,farbe.white);
feindExistenz2 = true;
sFeind = new SchiessFeind(300,110,farbe.white);
schiessFeindEx = true;
hindernis1 = new Hindernis(150,350,farbe.white);
hindPartEx1 = true;
hindPartEx2 = true;
hindPartEx3 = true;
hindernis2 = new Hindernis(300,350,farbe.white);
hindPartEx4 = true;
hindPartEx5 = true;
hindPartEx6 = true;
sAnzeige = new SchildAnzeige(600,460);
pAnzeige = new PunkteAnzeige(10,20,farbe.white);
spieler = new Raumschiff(320,420,farbe.white);
status=0;
punkte=0;
schusszahl=1;
}
public void fuehreAus()
{
pAnzeige.zeigePunkte(punkte);
sAnzeige.zeigeSchildstatus(status);
spieler.zeichneRaumschiff(true);
hindernis1.erstelleHindernis(1);
hindernis2.erstelleHindernis(3);
while (! steuerMaus.istRechtsGedrueckt())
{
zeit++;
if(feindExistenz1)
{
feind1.bewegung();
}
if(feindExistenz2)
{
feind2.bewegung();
}
if(schiessFeindEx)
{
sFeind.bewegung();
}
// Der Feind schiesst alle paar Sekunden
if(zeit>30&&fTest==false&&schiessFeindEx==true)
{
fSchuss = new Schuss(sFeind.gibxPosition()+10,sFeind.gibyPosition()+25,farbe.white);
fTest=true;
zeit=0;
}
if(tasten.zeichen()==zeichen.PFEILOBEN)
{
switch(schusszahl)
{
case 1:
{
schuss1 = new Schuss(spieler.gibxPosition()+8,spieler.gibyPosition()-35,farbe.white);
schusszahl++;
test1=true;
break;
}
case 2:
{
schuss2 = new Schuss(spieler.gibxPosition()+8,spieler.gibyPosition()-35,farbe.white);
schusszahl++;
test2=true;
break;
}
case 3:
{
schuss3 = new Schuss(spieler.gibxPosition()+8,spieler.gibyPosition()-35,farbe.white);
schusszahl++;
test3=true;
break;
}
}
spieler.schiesse();
}
Hilfe.warte(1);
if(tasten.zeichen()==zeichen.PFEILRECHTS)
{
spieler.bewegeRaumschiff(false);
}
Hilfe.warte(1);
if(tasten.zeichen()==zeichen.PFEILLINKS)
{
spieler.bewegeRaumschiff(true);
}
if(test1)
{
schuss1.bewegeSchuss(true);
this.positionsAbfragen();
if(feindExistenz1)
{
this.schussFeindKollision();
}
if(feindExistenz2)
{
this.schussFeindKollision();
}
// Aufrufen der Kollisionsabfragen zwischen den Partikeln und dem Schuss1
if(hindPartEx1)
{
this.schussHindernisKollision();
}
if(hindPartEx2)
{
this.schussHindernisKollision();
}
if(hindPartEx3)
{
this.schussHindernisKollision();
}
if(hindPartEx4)
{
this.schussHindernisKollision();
}
if(hindPartEx5)
{
this.schussHindernisKollision();
}
if(hindPartEx6)
{
this.schussHindernisKollision();
}
if(schiessFeindEx)
{
this.schussSFeindKollision();
}
}
if(test2)
{
schuss2.bewegeSchuss(true);
this.positionsAbfragen();
if(feindExistenz1)
{
this.schussFeindKollision();
}
if(feindExistenz2)
{
this.schussFeindKollision();
}
// Aufrufen der Kollisionsabfragen zwischen den Partikeln und dem Schuss2
if(hindPartEx1)
{
this.schussHindernisKollision();
}
if(hindPartEx2)
{
this.schussHindernisKollision();
}
if(hindPartEx3)
{
this.schussHindernisKollision();
}
if(hindPartEx4)
{
this.schussHindernisKollision();
}
if(hindPartEx5)
{
this.schussHindernisKollision();
}
if(hindPartEx6)
{
this.schussHindernisKollision();
}
if(schiessFeindEx)
{
this.schussSFeindKollision();
}
}
if(test3)
{
schuss3.bewegeSchuss(true);
this.positionsAbfragen();
if(feindExistenz1)
{
this.schussFeindKollision();
}
if(feindExistenz2)
{
this.schussFeindKollision();
}
// Aufrufen der Kollisionsabfragen zwischen den Partikeln und dem Schuss3
if(hindPartEx1)
{
this.schussHindernisKollision();
}
if(hindPartEx2)
{
this.schussHindernisKollision();
}
if(hindPartEx3)
{
this.schussHindernisKollision();
}
if(hindPartEx4)
{
this.schussHindernisKollision();
}
if(hindPartEx5)
{
this.schussHindernisKollision();
}
if(hindPartEx6)
{
this.schussHindernisKollision();
}
if(schiessFeindEx)
{
this.schussSFeindKollision();
}
}
if(fTest)
{
fSchuss.bewegeSchuss(false);
this.feindSchussPositionsAbfragen();
this.schussRaumschiffKollision();
}
System.out.println(schusszahl);
}
feind1.zerstöreFeind();
feind2.zerstöreFeind();
feind1.gibFrei();
feind2.gibFrei();
sAnzeige.gibFrei();
pAnzeige.gibFrei();
spieler.gibFrei();
steuerMaus.gibFrei();
einFenster.gibFrei();
}
public void positionsAbfragen()
{
if(test1)
{
if (schuss1.gibyPosition() < 30)
{
schusszahl--;
schuss1.zerstoereSchuss();
test1 = false;
}
}
if(test2)
{
if (schuss2.gibyPosition() < 30)
{
schusszahl--;
schuss2.zerstoereSchuss();
test2 = false;
}
}
if(test3)
{
if (schuss3.gibyPosition() < 30)
{
schusszahl--;
schuss3.zerstoereSchuss();
test3 = false;
}
}
}
public void feindSchussPositionsAbfragen()
{
if(fTest)
{
if (fSchuss.gibyPosition() > 450)
{
fSchuss.zerstoereSchuss();
fTest = false;
}
}
}
public void schussRaumschiffKollision()
{
// Kollisionsabfrage für Raumschiff
if(fTest)
{
if((Math.abs((fSchuss.gibxPosition())-(spieler.gibxPosition()+8))<10)&&(Math.abs((fSchuss.gibyPosition())-(spieler.gibyPosition()-10))<10))
{
fSchuss.zerstoereSchuss();
spieler.zeichneRaumschiff(true);
fTest=false;
status++;
sAnzeige.zeigeSchildstatus(status);
}
}
}
public void schussFeindKollision()
{
//Kollsionen der Feinde mit schuss1
if(test1)
{
//Kollisionsabfrage für feind1
if(feindExistenz1)
{
if ( (Math.abs(schuss1.gibxPosition() - (feind1.gibxPosition() + 8)) <
20) &&
(Math.abs(schuss1.gibyPosition() - (feind1.gibyPosition() - 10)) <
20)) {
schuss1.zerstoereSchuss();
test1 = false;
schusszahl--;
feind1.zerstöreFeind();
feindExistenz1 = false;
punkte = punkte + 10;
pAnzeige.zeigePunkte(punkte);
}
}
//Kollisionsabfrage für feind2
if(feindExistenz2)
{
if ( (Math.abs(schuss1.gibxPosition() - (feind2.gibxPosition() + 8)) <
20) &&
(Math.abs(schuss1.gibyPosition() - (feind2.gibyPosition() - 10)) <
20)) {
schuss1.zerstoereSchuss();
test1 = false;
schusszahl--;
feind2.zerstöreFeind();
feindExistenz2 = false;
punkte = punkte + 10;
pAnzeige.zeigePunkte(punkte);
}
}
}
//Kollsionen der Feinde mit schuss2
if(test2)
{
//Kollisionsabfrage für feind1
if(feindExistenz1)
{
if ( (Math.abs(schuss2.gibxPosition() - (feind1.gibxPosition() + 8)) <
10) &&
(Math.abs(schuss2.gibyPosition() - (feind1.gibyPosition() - 10)) <
10)) {
schuss2.zerstoereSchuss();
test2 = false;
schusszahl--;
feind1.zerstöreFeind();
feindExistenz1 = false;
punkte = punkte + 10;
pAnzeige.zeigePunkte(punkte);
}
}
//Kollisionsabfrage für feind2
if(feindExistenz2)
{
if ( (Math.abs(schuss2.gibxPosition() - (feind2.gibxPosition() + 8)) <
20) &&
(Math.abs(schuss2.gibyPosition() - (feind2.gibyPosition() - 10)) <
20)) {
schuss2.zerstoereSchuss();
test2 = false;
schusszahl--;
feind2.zerstöreFeind();
feindExistenz2 = false;
punkte = punkte + 10;
pAnzeige.zeigePunkte(punkte);
}
}
}
//Kollsionen der Feinde mit schuss3
if(test3)
{
//Kollisionsabfrage für feind1
if(feindExistenz1)
{
if ( (Math.abs(schuss3.gibxPosition() - (feind1.gibxPosition() + 8)) <
10) &&
(Math.abs(schuss3.gibyPosition() - (feind1.gibyPosition() - 10)) <
10)) {
schuss3.zerstoereSchuss();
test3 = false;
schusszahl--;
feind1.zerstöreFeind();
feindExistenz1 = false;
punkte = punkte + 10;
pAnzeige.zeigePunkte(punkte);
}
}
//Kollisionsabfrage für feind2
if(feindExistenz2)
{
if ( (Math.abs(schuss3.gibxPosition() - (feind2.gibxPosition() + 8)) <
20) &&
(Math.abs(schuss3.gibyPosition() - (feind2.gibyPosition() - 10)) <
20)) {
schuss3.zerstoereSchuss();
test3 = false;
schusszahl--;
feind2.zerstöreFeind();
feindExistenz2 = false;
punkte = punkte + 10;
pAnzeige.zeigePunkte(punkte);
}
}
}
}
public void schussSFeindKollision()
{
//Kollsionen des sFeindes mit schuss1
if(test1)
{
//Kollisionsabfrage für sFeind
if (schiessFeindEx)
{
if ( (Math.abs(schuss1.gibxPosition() - (sFeind.gibxPosition() + 8)) <
20) &&
(Math.abs(schuss1.gibyPosition() - (sFeind.gibyPosition() - 10)) <
20)) {
schuss1.zerstoereSchuss();
schiessFeindEx = false;
test1 = false;
schusszahl--;
sFeind.zerstöreFeind();
punkte = punkte + 15;
pAnzeige.zeigePunkte(punkte);
}
}
}
//Kollsionen des sFeindes mit schuss2
if(test2)
{
//Kollisionsabfrage für sFeind
if (schiessFeindEx)
{
if ( (Math.abs(schuss2.gibxPosition() - (sFeind.gibxPosition() + 8)) <
10) &&
(Math.abs(schuss2.gibyPosition() - (sFeind.gibyPosition() - 10)) <
10)) {
schuss2.zerstoereSchuss();
schiessFeindEx = false;
test2 = false;
schusszahl--;
sFeind.zerstöreFeind();
punkte = punkte + 15;
pAnzeige.zeigePunkte(punkte);
}
}
}
//Kollsionen des sFeindes mit schuss3
if(test3)
{
//Kollisionsabfrage für sFeind
if (schiessFeindEx)
{
if ( (Math.abs(schuss3.gibxPosition() - (sFeind.gibxPosition() + 8)) <
10) &&
(Math.abs(schuss3.gibyPosition() - (sFeind.gibyPosition() - 10)) <
10)) {
schuss3.zerstoereSchuss();
schiessFeindEx = false;
test3 = false;
schusszahl--;
sFeind.zerstöreFeind();
punkte = punkte + 15;
pAnzeige.zeigePunkte(punkte);
}
}
}
}
public void schussHindernisKollision()
{
// kollisionen mit schuss1
if(test1)
{
if(hindPartEx1)
{
//kollision mit hindernis1.partikel1
if((Math.abs(schuss1.gibxPosition()-(hindernis1.einPartikel1.gibxPosition()+5))<6)&&(Math.abs(schuss1.gibyPosition()-(hindernis1.einPartikel1.gibyPosition()-5))<6))
{
schuss1.zerstoereSchuss();
test1 = false;
schusszahl--;
hindernis1.einPartikel1.zerstoereHindernisPartikel();
hindPartEx1 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis1.partikel2
if(hindPartEx2)
{
if((Math.abs(schuss1.gibxPosition()-(hindernis1.einPartikel2.gibxPosition()+5))<6)&&(Math.abs(schuss1.gibyPosition()-(hindernis1.einPartikel2.gibyPosition()-5))<6))
{
schuss1.zerstoereSchuss();
test1 = false;
schusszahl--;
hindernis1.einPartikel2.zerstoereHindernisPartikel();
hindPartEx2 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis1.partikel3
if(hindPartEx3)
{
if((Math.abs(schuss1.gibxPosition()-(hindernis1.einPartikel3.gibxPosition()+5))<6)&&(Math.abs(schuss1.gibyPosition()-(hindernis1.einPartikel3.gibyPosition()-5))<6))
{
schuss1.zerstoereSchuss();
test1 = false;
schusszahl--;
hindernis1.einPartikel3.zerstoereHindernisPartikel();
hindPartEx3 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis2.partikel1
if(hindPartEx4)
{
if((Math.abs(schuss1.gibxPosition()-(hindernis2.einPartikel1.gibxPosition()+5))<6)&&(Math.abs(schuss1.gibyPosition()-(hindernis2.einPartikel1.gibyPosition()-5))<6))
{
schuss1.zerstoereSchuss();
test1 = false;
schusszahl--;
hindernis2.einPartikel1.zerstoereHindernisPartikel();
hindPartEx4 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis2.partikel2
if(hindPartEx5)
{
if((Math.abs(schuss1.gibxPosition()-(hindernis2.einPartikel2.gibxPosition()+5))<6)&&(Math.abs(schuss1.gibyPosition()-(hindernis2.einPartikel2.gibyPosition()-5))<6))
{
schuss1.zerstoereSchuss();
test1 = false;
schusszahl--;
hindernis2.einPartikel2.zerstoereHindernisPartikel();
hindPartEx5 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis2.partikel3
if(hindPartEx6)
{
if((Math.abs(schuss1.gibxPosition()-(hindernis2.einPartikel3.gibxPosition()+5))<6)&&(Math.abs(schuss1.gibyPosition()-(hindernis2.einPartikel3.gibyPosition()-5))<6))
{
schuss1.zerstoereSchuss();
test1 = false;
schusszahl--;
hindernis2.einPartikel3.zerstoereHindernisPartikel();
hindPartEx6 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
}
// kollisionen mit schuss2
if(test2)
{
if(hindPartEx1)
{
//kollision mit hindernis1.partikel1
if((Math.abs(schuss2.gibxPosition()-(hindernis1.einPartikel1.gibxPosition()+5))<6)&&(Math.abs(schuss2.gibyPosition()-(hindernis1.einPartikel1.gibyPosition()-5))<6))
{
schuss2.zerstoereSchuss();
test2 = false;
schusszahl--;
hindernis1.einPartikel1.zerstoereHindernisPartikel();
hindPartEx1 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis1.partikel2
if(hindPartEx2)
{
if((Math.abs(schuss2.gibxPosition()-(hindernis1.einPartikel2.gibxPosition()+5))<6)&&(Math.abs(schuss2.gibyPosition()-(hindernis1.einPartikel2.gibyPosition()-5))<6))
{
schuss2.zerstoereSchuss();
test2 = false;
schusszahl--;
hindernis1.einPartikel2.zerstoereHindernisPartikel();
hindPartEx2 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis1.partikel3
if(hindPartEx3)
{
if((Math.abs(schuss2.gibxPosition()-(hindernis1.einPartikel3.gibxPosition()+5))<6)&&(Math.abs(schuss2.gibyPosition()-(hindernis1.einPartikel3.gibyPosition()-5))<6))
{
schuss2.zerstoereSchuss();
test2 = false;
schusszahl--;
hindernis1.einPartikel3.zerstoereHindernisPartikel();
hindPartEx3 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis2.partikel1
if(hindPartEx4)
{
if((Math.abs(schuss2.gibxPosition()-(hindernis2.einPartikel1.gibxPosition()+5))<6)&&(Math.abs(schuss2.gibyPosition()-(hindernis2.einPartikel1.gibyPosition()-5))<6))
{
schuss2.zerstoereSchuss();
test2 = false;
schusszahl--;
hindernis2.einPartikel1.zerstoereHindernisPartikel();
hindPartEx4 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis2.partikel2
if(hindPartEx5)
{
if((Math.abs(schuss2.gibxPosition()-(hindernis2.einPartikel2.gibxPosition()+5))<6)&&(Math.abs(schuss2.gibyPosition()-(hindernis2.einPartikel2.gibyPosition()-5))<6))
{
schuss2.zerstoereSchuss();
test2 = false;
schusszahl--;
hindernis2.einPartikel2.zerstoereHindernisPartikel();
hindPartEx5 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis2.partikel3
if(hindPartEx6)
{
if((Math.abs(schuss2.gibxPosition()-(hindernis2.einPartikel3.gibxPosition()+5))<6)&&(Math.abs(schuss2.gibyPosition()-(hindernis2.einPartikel3.gibyPosition()-5))<6))
{
schuss2.zerstoereSchuss();
test2 = false;
schusszahl--;
hindernis2.einPartikel3.zerstoereHindernisPartikel();
hindPartEx6 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
}
// kollisionen mit schuss3
if(test3)
{
if(hindPartEx1)
{
//kollision mit hindernis1.partikel1
if((Math.abs(schuss3.gibxPosition()-(hindernis1.einPartikel1.gibxPosition()+5))<6)&&(Math.abs(schuss3.gibyPosition()-(hindernis1.einPartikel1.gibyPosition()-5))<6))
{
schuss3.zerstoereSchuss();
test3 = false;
schusszahl--;
hindernis1.einPartikel1.zerstoereHindernisPartikel();
hindPartEx1 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis1.partikel2
if(hindPartEx2)
{
if((Math.abs(schuss3.gibxPosition()-(hindernis1.einPartikel2.gibxPosition()+5))<6)&&(Math.abs(schuss3.gibyPosition()-(hindernis1.einPartikel2.gibyPosition()-5))<6))
{
schuss3.zerstoereSchuss();
test3 = false;
schusszahl--;
hindernis1.einPartikel2.zerstoereHindernisPartikel();
hindPartEx2 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis1.partikel3
if(hindPartEx3)
{
if((Math.abs(schuss3.gibxPosition()-(hindernis1.einPartikel3.gibxPosition()+5))<6)&&(Math.abs(schuss3.gibyPosition()-(hindernis1.einPartikel3.gibyPosition()-5))<6))
{
schuss3.zerstoereSchuss();
test3 = false;
schusszahl--;
hindernis1.einPartikel3.zerstoereHindernisPartikel();
hindPartEx3 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis2.partikel1
if(hindPartEx4)
{
if((Math.abs(schuss3.gibxPosition()-(hindernis2.einPartikel1.gibxPosition()+5))<6)&&(Math.abs(schuss3.gibyPosition()-(hindernis2.einPartikel1.gibyPosition()-5))<6))
{
schuss3.zerstoereSchuss();
test3 = false;
schusszahl--;
hindernis2.einPartikel1.zerstoereHindernisPartikel();
hindPartEx1 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis2.partikel2
if(hindPartEx5)
{
if((Math.abs(schuss3.gibxPosition()-(hindernis2.einPartikel2.gibxPosition()+5))<6)&&(Math.abs(schuss3.gibyPosition()-(hindernis2.einPartikel2.gibyPosition()-5))<6))
{
schuss3.zerstoereSchuss();
test3 = false;
schusszahl--;
hindernis2.einPartikel2.zerstoereHindernisPartikel();
hindPartEx2 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
//kollision mit hindernis2.partikel3
if(hindPartEx6)
{
if((Math.abs(schuss3.gibxPosition()-(hindernis2.einPartikel3.gibxPosition()+5))<6)&&(Math.abs(schuss3.gibyPosition()-(hindernis2.einPartikel3.gibyPosition()-5))<6))
{
schuss3.zerstoereSchuss();
test3 = false;
schusszahl--;
hindernis2.einPartikel3.zerstoereHindernisPartikel();
hindPartEx3 = false;
punkte++;
pAnzeige.zeigePunkte(punkte);
}
}
}
}
}