Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
techniken:objektorientjava [2016/07/14 14:42] c.jaedicke [Ein fertiges Programm] |
techniken:objektorientjava [2016/07/14 14:43] (aktuell) c.jaedicke [Konventionen] |
||
---|---|---|---|
Zeile 191: | Zeile 191: | ||
Unsere Klasse bekommt zwei weitere Methoden, eine um den Roboter an seiner aktuellen Position zu zeichnen und eine um den Roboter um einen gewissen Winkel zu drehen. | Unsere Klasse bekommt zwei weitere Methoden, eine um den Roboter an seiner aktuellen Position zu zeichnen und eine um den Roboter um einen gewissen Winkel zu drehen. | ||
- | <code java> | + | ===== Tabs in Processing ===== |
- | class Robot { // Deklaration der Klasse Robot | + | Jetzt können wir die fertige Klasse verwenden. Um dies in Processing auf eine möglichst übersichtliche weise zu tun sollte ein neuer Tab geöffnet werden: |
- | int dRobot = 50; //Der Durchmesser des Roboters in Pixel | + | {{:Techniken:processingtab.jpg?nolink|}} |
- | float direction = PI; //Die Richtung in die der Roboter schaut | + | |
- | //(PI (links), da der Winkel in Bogenmaß angegeben wird) | + | |
- | float posX = 100; //Die x-Position des Roboters in Pixel | + | |
- | float posY = 100; //Die y-Position des Roboters in Pixel | + | |
- | + | ||
- | //Diese Methode zeichnet einen Roboter | + | |
- | //an seiner aktuellen Position und Ausrichtung. | + | |
- | void drawRobot(){ //"void" bedeutet dass es keinen Rückgabewert gibt | + | |
- | // Zeichne einen Kreis an der Position des Roboters. | + | |
- | ellipse(posX,posY,dRobot,dRobot); | + | |
- | // Zeichne eine Linie welche die Orientierung des Roboters angibt. | + | |
- | line(posX,posY,posX+cos(direction)*50, posY+sin(direction)*50); | + | |
- | } | + | |
- | + | ||
- | //Die moveForward-Funktion verändert die Position so, wie es einen Schritt nach vorne entspricht. | + | |
- | void moveForward(float distance){ | + | |
- | posX = posX+cos(direction)*distance; // Innerhalb der Funktion kann direkt auf die Klassenvariablen | + | |
- | posY = posY+sin(direction)*distance; // zugegriffen werden. (Sie sind im Objekt quasi "lokal") | + | |
- | } | + | |
- | + | ||
- | //Diese Methode dreht den Roboter um einen gewissen Winkel | + | |
- | //welcher von "winkelaenderung" vorgegeben wird. | + | |
- | // Die Methode bekommt einen Übergabeparameter vom Typ "float". | + | |
- | void turnRobot(float angle){ | + | |
- | this. direction += angle; | + | |
- | } | + | |
- | + | ||
- | } | + | |
- | + | ||
- | </code> | + | |
+ | In diesem neuen Tab speichert ihr eure Klasse. | ||
===== Das ist noch nicht alles... ===== | ===== Das ist noch nicht alles... ===== | ||
Mit dem, was bis hierhin besprochen wurde, könnt ihr schonmal einigermaßen Ordunung in euer Programm bringen und die von einer Library bereitgestellen Klassen benutzen. | Mit dem, was bis hierhin besprochen wurde, könnt ihr schonmal einigermaßen Ordunung in euer Programm bringen und die von einer Library bereitgestellen Klassen benutzen. |