-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSpiel.java
81 lines (74 loc) · 2.81 KB
/
Spiel.java
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
import ea.*;
/**
* Dieses Beispiel demonstriert, wie man Bilder in der Engine Alpha benutzen kann.<br /><br />
*
* Notiz:<br />
* Die hier zugehoerige Bilddatei befindet sich im Projektordner.
* @version 2.0
* @author Michael Andonie
*/
public class Spiel
extends Game {
/**
* Das Bild, das dargestellt wird.
*/
private Bild bild;
/**
* Konstruktor-Methode.<br />
* Erstellt das Spiel und beginnt das Beispiel. Hierdrin wird das Bild geladen und sichtbar gemacht.
*/
public Spiel() {
super(550, 600, "Bilder-Beispiel");
//Lade das Bild:
//X-Koordinate der linken oberen Ecke: 5
//Y-Koordinate der linken oberen Ecke: 3
//Dateipfad vom Projektordner aus: "bilddatei.png"
bild = new Bild(5, 5, "bilddatei.png");
//Mache das Bild auch sichtbar!
//Die Methode habe ich dir im Kapitel 'Raum' mitgegeben.
sichtbarMachen(bild);
}
/**
* Macht ein beliebiges Raum-Objekt sichtbar.<br />
* Dank der Vererbungshierarchie koennen ueber
* diese Methode Texte wie Bilder und andere
* grafische Elemente mit einer Methode behandelt werden.<br />
* Diese Methode muss noch nicht verstanden werden. Sie wird
* im Kapitel 'Knoten' behandelt und erklaert.
* @param m Das sichtbar zu machende Raum-Objekt
*/
public void sichtbarMachen(Raum m) {
wurzel.add(m);
}
/**
* Die Taste-Reagieren-Methode zum Reagieren auf Tastendruck.<br />
* Hierdrin wird das Bild bei Druck auf die Pfeiltasten einfach verschoben.<br /><br `/>
*
* Die Methode zum verschieben kann bei jeder grafischen Klasse genutzt werden, sowohl fuer
* <b>Bilder</b> als auch fuer <b>Texte, geometrische Figuren etc.</b>. Denn diese Methode ist
* in der Klasse <code>Raum</code> definiert und <b>ALLE</b> grafischen Objekte leiten sich
* aus dieser Klasse <code>Raum</code> ab.
* @param tastencode Der Code, der angibt, welche Taste gedrueckt wurde.
*/
@Override
public void tasteReagieren(int tastencode) {
switch(tastencode) {
case 26: //Pfeil rauf
//Verschiebe das Bild um Delta-X = 0 und Delta-Y = -10
bild.verschieben(0, -10);
break;
case 27: //Pfeil rechts
//Verschiebe das Bild um Delta-X = 0 und Delta-Y = 0
bild.verschieben(10, 0);
break;
case 28: //Pfeil runter
//Verschiebe das Bild um Delta-X = 0 und Delta-Y = 10
bild.verschieben(0, 10);
break;
case 29: //Pfeil links
//Verschiebe das Bild um Delta-X = -10 und Delta-Y = 0
bild.verschieben(-10, 0);
break;
}
}
}