1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo)
/**
* Die Klasse MyWorld verwaltet alle Objekte des Spiels.
*
* @author Michael Arnot
* @author Florian Fischer
* @version 2024-06-14
*/
public class MyWorld extends World
{
int alienAnzahl = 0;
int punkte = 0;
int zeit = 0;
/**
* Konstruktor für Objekte der Klasse MyWorld
*
*/
public MyWorld()
{
// Erstellt eine neue Welt mit 600x400 Zellen und einer Zell-Groesse von 1x1 Pixeln.
super(600, 600, 1);
getBackground().setColor(Color.BLACK);
getBackground().fill();
level1();
}
public void act()
{
zeit++;
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(), 148 + spalte*36, 50 + zeile*36);
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()
{
showText("V I C T O R Y", 300, 300);
Greenfoot.stop();
}
/*
* Der Spieler hat verloren und die "Aliens" haben den Planeten erreicht
*/
public void verloren()
{
showText("G A M E O V E R", 300, 300);
Greenfoot.stop();
}
}
|