aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2024-07-12 23:19:16 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2024-07-12 23:46:41 +0200
commitfddabffaab171d5c2b8d5d6005681ab15b70bc10 (patch)
tree2a4c4b898541172dbb8ab4f28e227ff4701d0e2f
parentcb14c229e6e39bbae9d5aa3f3e3d2e8ac842609b (diff)
downloadspaceinvaders-vorlage2.tar.gz
spaceinvaders-vorlage2.zip
remove all game logic except spaceship movementvorlage2
-rw-r--r--Alien.java37
-rw-r--r--Laser.java11
-rw-r--r--Lazer.java11
-rw-r--r--MyWorld.java59
-rw-r--r--Projektil.java29
-rw-r--r--Raumschiff.java31
-rw-r--r--Schild.java27
-rw-r--r--project.greenfoot95
8 files changed, 18 insertions, 282 deletions
diff --git a/Alien.java b/Alien.java
index 06775b8..95a79ae 100644
--- a/Alien.java
+++ b/Alien.java
@@ -16,8 +16,6 @@ public class Alien extends Actor
{
bewegen();
schiessen();
- pruefeSieg();
- pruefeKollision();
}
/**
@@ -36,42 +34,7 @@ public class Alien extends Actor
}
}
- /**
- * Wenn ein Alien den unteren Rand des Bildschirms erreicht, ist das Spiel
- * verloren.
- */
- private void pruefeSieg()
- {
- if (getY() >= 590)
- {
- ((MyWorld)getWorld()).verloren();
- }
- }
-
- /**
- * Ueberprueft ob ein Alien von einem Projektil getroffen wurde.
- */
- private void pruefeKollision()
- {
- if (isTouching(Laser.class))
- {
- removeTouching(Laser.class); // Projektil wird zerstört
- Greenfoot.playSound("Explosion.wav");
- ((MyWorld)getWorld()).erhoehePunkte(50); // Spieler bekommt Punkte
- ((MyWorld)getWorld()).reduziereAlienAnzahl();
- getWorld().removeObject(this); // Das Alien selber wird zerstört
- }
- }
-
- /**
- * Feuert einen Schuss ab mit einer Wahrscheinlichkeit von 0.04%.
- */
private void schiessen()
{
- if (Greenfoot.getRandomNumber(10000) <= 4)
- {
- Lazer lazer = new Lazer();
- getWorld().addObject(lazer, getX(),getY());
- }
}
}
diff --git a/Laser.java b/Laser.java
deleted file mode 100644
index 9dd02ef..0000000
--- a/Laser.java
+++ /dev/null
@@ -1,11 +0,0 @@
-import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo)
-
-/**
- * Projektile des Raumschiffs.
- */
-public class Laser extends Projektil
-{
- public Laser() {
- geschwindigkeit = 6;
- }
-}
diff --git a/Lazer.java b/Lazer.java
deleted file mode 100644
index 5dbfb1f..0000000
--- a/Lazer.java
+++ /dev/null
@@ -1,11 +0,0 @@
-import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
-
-/**
- * Projektile der Aliens.
- */
-public class Lazer extends Projektil
-{
- public Lazer() {
- geschwindigkeit = -5;
- }
-}
diff --git a/MyWorld.java b/MyWorld.java
index 04b1da8..a2654ad 100644
--- a/MyWorld.java
+++ b/MyWorld.java
@@ -9,8 +9,6 @@ import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo)
*/
public class MyWorld extends World
{
- int alienAnzahl = 0;
- int punkte = 0;
int zeit = 0;
/**
@@ -23,7 +21,7 @@ public class MyWorld extends World
super(600, 600, 1);
getBackground().setColor(Color.BLACK);
getBackground().fill();
- level1();
+ addObject(new Raumschiff(), 300, 565);
}
public void act()
@@ -32,61 +30,6 @@ public class MyWorld extends World
showText("Zeit", 500, 20);
showText("" + zeit/50, 500, 40);
-
- if (alienAnzahl == 0)
- {
- gewonnen();
- }
-
- showText("Punkte", 100, 20);
- showText("" + punkte, 100, 40);
- }
-
- public void reduziereAlienAnzahl()
- {
- alienAnzahl--;
- }
-
- public void erhoehePunkte(int p)
- {
- punkte = punkte + p;
- }
-
- /**
- * Bereite die Welt fuer den Programmstart vor.
- * Das heisst: Erzeuge die Anfangs-Objekte und fuege sie der Welt hinzu.
- */
- private void level1()
- {
- Raumschiff raumschiff = new Raumschiff();
- addObject(raumschiff, 300,565);
-
- for (int zeile = 0; zeile < 5; zeile++)
- {
- for (int spalte = 0; spalte < 10; spalte++)
- {
- addObject(new Alien(), 118 + spalte*42, 50 + zeile*38);
- alienAnzahl++;
- }
- }
- }
-
- private void erzeugeSchilde() {
- for (int m = 0; m < 4; m++)
- {
- for (int r = 0; r < 12; r++)
- {
- for (int f = 0; f < 2; f++)
- {
- addObject(new Schild(), 80 + 60 * f + 126 * m, 470 + 4*r);
- addObject(new Schild(), 85 + 50 * f + 126 * m, 465 + 4*r);
- }
- for (int f = 0; f<10; f++)
- {
- addObject(new Schild(), 90 + 5 * f + 126 * m, 460 + 4*r);
- }
- }
- }
}
private void gewonnen()
diff --git a/Projektil.java b/Projektil.java
deleted file mode 100644
index 8d73aec..0000000
--- a/Projektil.java
+++ /dev/null
@@ -1,29 +0,0 @@
-import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
-/**
- * Oberklasse aller Projektile im Spiel.
- *
- * Ein Projektil bewegt sich mit seiner aktuellen Geschwindigkeit nach unten.
- *
- */
-public class Projektil extends Actor
-{
- int geschwindigkeit = 1;
-
- /**
- * Act - bewegt das Projektil. Diese Methode wird aufgerufen,
- * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden.
- */
- public void act()
- {
- bewegen();
- }
-
- private void bewegen()
- {
- setLocation(getX(), getY() - geschwindigkeit);
- if (getY() == 0 || getY() == 599)
- {
- getWorld().removeObject(this);
- }
- }
-}
diff --git a/Raumschiff.java b/Raumschiff.java
index 4a06e60..0458a7b 100644
--- a/Raumschiff.java
+++ b/Raumschiff.java
@@ -6,7 +6,6 @@ import java.util.List;
*/
public class Raumschiff extends Actor
{
- boolean leertasteGedrueckt = false;
/**
* Act - stellt das Verhalten des Raumschiffs dar. Diese Methode wird aufgerufen,
@@ -15,7 +14,6 @@ public class Raumschiff extends Actor
public void act()
{
pruefeTastatur();
- pruefeKollision();
}
/**
@@ -32,19 +30,6 @@ public class Raumschiff extends Actor
{
setLocation(getX() + 3, getY());
}
-
- if (Greenfoot.isKeyDown("space"))
- {
- if (leertasteGedrueckt == false)
- {
- schiessen();
- leertasteGedrueckt = true;
- }
- }
- else
- {
- leertasteGedrueckt = false;
- }
}
/**
@@ -52,21 +37,5 @@ public class Raumschiff extends Actor
*/
public void schiessen()
{
- Greenfoot.playSound("EnergyGun.wav");
- Laser laser = new Laser();
- getWorld().addObject(laser, getX(),getY());
- }
-
- /**
- * Ueberprueft ob das Raumschiff von einem Alien getroffen wurde.
- */
- private void pruefeKollision()
- {
- if (isTouching(Lazer.class))
- {
- removeTouching(Lazer.class);
- ((MyWorld)getWorld()).verloren();
- getWorld().removeObject(this);
- }
}
}
diff --git a/Schild.java b/Schild.java
deleted file mode 100644
index 2438356..0000000
--- a/Schild.java
+++ /dev/null
@@ -1,27 +0,0 @@
-import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo)
-
-/**
- * Ein Schild blockt Projektile und wird danach zerstoert.
- */
-public class Schild extends Actor
-{
- /**
- * Act - prueft ob das Schild etwas anderes beruehrt. Diese Methode wird aufgerufen,
- * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden.
- */
- public void act()
- {
- pruefeKollision();
- }
-
- private void pruefeKollision()
- {
- if (isTouching(Lazer.class) || isTouching(Laser.class))
- {
- removeTouching(Laser.class);
- removeTouching(Lazer.class);
- removeTouching(Schild.class);
- getWorld().removeObject(this); // Zerstoere das Schild selbst
- }
- }
-}
diff --git a/project.greenfoot b/project.greenfoot
index 98eb5af..8325de9 100644
--- a/project.greenfoot
+++ b/project.greenfoot
@@ -1,49 +1,16 @@
#Greenfoot project file
class.Alien.image=yellow.png
-class.Laser.image=laser.png
-class.Lazer.image=laser2.png
class.Raumschiff.image=player.png
-class.Schild.image=shieldpart.png
dependency1.from=MyWorld
dependency1.to=Raumschiff
dependency1.type=UsesDependency
-dependency10.from=Schild
-dependency10.to=Lazer
-dependency10.type=UsesDependency
-dependency11.from=Schild
-dependency11.to=Laser
-dependency11.type=UsesDependency
-dependency2.from=MyWorld
-dependency2.to=Alien
-dependency2.type=UsesDependency
-dependency3.from=MyWorld
-dependency3.to=Schild
-dependency3.type=UsesDependency
-dependency4.from=Alien
-dependency4.to=MyWorld
-dependency4.type=UsesDependency
-dependency5.from=Alien
-dependency5.to=Lazer
-dependency5.type=UsesDependency
-dependency6.from=Alien
-dependency6.to=Laser
-dependency6.type=UsesDependency
-dependency7.from=Raumschiff
-dependency7.to=Laser
-dependency7.type=UsesDependency
-dependency8.from=Raumschiff
-dependency8.to=MyWorld
-dependency8.type=UsesDependency
-dependency9.from=Raumschiff
-dependency9.to=Lazer
-dependency9.type=UsesDependency
-editor.fx.0.height=1049
-editor.fx.0.width=634
-editor.fx.0.x=3203
-editor.fx.0.y=3
-height=1049
-package.numDependencies=11
-package.numTargets=7
+editor.fx.0.height=0
+editor.fx.0.width=0
+editor.fx.0.x=0
+editor.fx.0.y=0
+height=521
+package.numDependencies=1
+package.numTargets=3
project.charset=UTF-8
publish.hasSource=false
publish.locked=true
@@ -57,58 +24,30 @@ readme.name=@README
readme.width=49
readme.x=10
readme.y=10
-simulation.speed=52
-target1.height=50
+simulation.speed=50
+target1.height=70
target1.name=Alien
target1.showInterface=false
target1.type=ClassTarget
-target1.width=80
+target1.width=120
target1.x=0
target1.y=0
-target2.height=50
-target2.name=Laser
+target2.height=70
+target2.name=Raumschiff
target2.showInterface=false
target2.type=ClassTarget
-target2.width=80
+target2.width=120
target2.x=0
target2.y=0
target3.height=70
-target3.name=Projektil
+target3.name=MyWorld
target3.showInterface=false
target3.type=ClassTarget
target3.width=120
target3.x=0
target3.y=0
-target4.height=70
-target4.name=Lazer
-target4.showInterface=false
-target4.type=ClassTarget
-target4.width=120
-target4.x=0
-target4.y=0
-target5.height=50
-target5.name=MyWorld
-target5.showInterface=false
-target5.type=ClassTarget
-target5.width=80
-target5.x=0
-target5.y=0
-target6.height=50
-target6.name=Raumschiff
-target6.showInterface=false
-target6.type=ClassTarget
-target6.width=100
-target6.x=0
-target6.y=0
-target7.height=70
-target7.name=Schild
-target7.showInterface=false
-target7.type=ClassTarget
-target7.width=120
-target7.x=0
-target7.y=0
version=3.1.0
-width=634
+width=1914
world.lastInstantiated=MyWorld
-xPosition=2563
-yPosition=3
+xPosition=1923
+yPosition=531