This site requires JavaScript, please enable it in your browser!
Greenfoot back
Paradox
Paradox wrote ...

2016/12/21

Objekt direkt ansprechen

Paradox Paradox

2016/12/21

#
Ich suche nun schon seit ein paar Stunden im Internet, schaffe es aber nicht, es auf mein Programm anzuwenden. Bei folgendem Code aus der AkkuRover Klasse taucht ein Fehler bei eCounter.setValue((int)energie) auf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void entladeAkku()
    {
        Akku dieserAkku = (Akku) getOneIntersectingObject(Akku.class);
        if (dieserAkku == null) {
            nachricht("Kein Akku vorhanden");
        }
        else if (dieserAkku.energiewert()==0) {
            nachricht("Akku ist leer");
        }
        else {
            energie = energie + dieserAkku.energiewert();
            eCounter.setValue((int)energie);
            dieserAkku.entladen();
        }
    }
Ich habe vorher eCounter schon folgendermaßen definiert:
1
Counter eCounter = (Counter) getOneObjectAtOffset(0, 0, Counter.class);
Die Klasse Counter ist eine direkte Subklasse von Actor und wird in der Welt folgendermaßen konstruiert:
1
2
Counter eCounter = new Counter();
        addObject(eCounter, 0, 0);
Ich würde gerne den Counter (Objekt) aus der Klasse Rover ansprechen und einen befehl ausführen. Was mache ich falsch?
danpost danpost

2016/12/21

#
Try this:
1
Counter eCounter = (Counter) getOneObjectAtOffset(-getX(), -getY(), Counter.class);
See documentation on 'getOneObjectAtOffset; (parameters).
You need to login to post a reply.