aboutsummaryrefslogtreecommitdiff
path: root/Auto.java
blob: 0b80c4a3c1c197da70e6127a9e2b5156ad259f4d (plain)
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
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot und MouseInfo)

/**
 * Steuerbares Auto.
 */
public class Auto extends Actor
{
    int geschwindigkeit;
    String farbe = "blau";

    /**
     * TODO: Konstruktor der Klasse Auto
     */



    /**
     * Act - tut, was auch immer Auto tun will. Diese Methode wird aufgerufen, 
     * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden. 
     */
    public void act() 
    {        
        pruefeTastatur();
        bewegen();
        pruefeKollision();
        pruefeMaus();
    }

    
    
    
    
    
    
    
    
    
    
    
    
    
    

    void setzeFarbe(String neueFarbe) {
        farbe = neueFarbe;
        if (farbe.equals("blau")) {
            setImage("car01-n.png");
        }
        else if (farbe.equals("rot")) {
            setImage("car02-n.png");
        }
        else if (farbe.equals("gruen")) {
            setImage("car03-n.png");
        }
    }

    void pruefeTastatur() {
        if (Greenfoot.isKeyDown("left")) {
            turn(-3);
        }

        if (Greenfoot.isKeyDown("right")) {
            turn(3);
        }
    }

    void bewegen() {
        // Die Orientierung des Objekts und des Bildes sind um 90 Grad versetzt
        int rotation = getRotation();
        setRotation(rotation-90);
        move(geschwindigkeit);
        setRotation(rotation);
        
         if (isTouching(Ziel.class)) {
            ((Rennbahn)getWorld()).angekommen(this);
        }
    }

    void pruefeKollision() {
        if (isTouching(Rakete.class)) {
            explodieren();
        }
    }

    private void explodieren() {
        getWorld().addObject(new Explosion(), getX(), getY());
        removeTouching(Rakete.class);
        getWorld().removeObject(this);
    }

    int clicked = 0;
    private void pruefeMaus() {
        if (Greenfoot.mouseClicked(this)) {
            clicked++;
            if (clicked == 3) {
                explodieren();
            }
        }
    }
}