• Keine Ergebnisse gefunden

Übungsblatt 4– EIPNF WS

N/A
N/A
Protected

Academic year: 2022

Aktie "Übungsblatt 4– EIPNF WS"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Seite 1/2

Übungsblatt 4– EIPNF WS

Aufgabe 1:

Gegeben sei die Klasse Ball. Die Klasse besitzt die Felder: x, y und r, die Position und Größe bestimmen und die Felder dx und dy, die die Bewegungsrichtung beschreiben.

Dem Konstruktor werden Parameter für Position und Größe übergeben, die Bewegungsrichtung wird zufällig generiert.

Die Methode move bewegt den Ball und ändert gegebenenfalls bei Kollision mit den Seiten die Richtung. plot zeichnet einen Kreis an der aktuellen Position mit dem entsprechenden Radius.

1. Deklariere zwei Objekte der Klasse Ball 2. Initialisiere diese in setup

3. Führe die Methoden move und plot auf beiden Objekten in draw aus class Ball {

float dx,dy,x,y,r;

public Ball (float x, float y, float r) { this.x = x;

this.y = y;

this.r = r;

dx = random(-5,5);

dy = random(-5,5);

}

void move () { x += dx;

y += dy;

if (x+r>width) { x = width-r;

dx *= -1;

} else if (x-r<0) { x = r;

dx *= -1;

}

if (y+r>height) { y = height-r;

dy *= -1;

} else if (y-r<0) { y = r;

dy *= -1;

} }

void plot () {

ellipse(x,y,2*r,2*r);

} }

(2)

Seite 2/2

Aufgabe 2:

Erweitere nun die Klasse Ball um folgende Methoden:

1. calcDistance : diese Methode berechnet den Abstand zu einem anderen Ball.

Übergebe dafür als Parameter ein Objekt der Klasse Ball und berechne mit Hilfe des Satzes von Pythagoras (a² +b² = c²) die Distanz.

Das Quadrat einer Zahl lässt sich mit der Funktion sq(2); (->4) und die Wurzel mit sqrt(4); (->2) berechnen.

Die berechnete Distanz wird als float zurückgegeben.

2. Erweitere die vorherige Aufgabe: Überprüfe in draw vor den Aufrufen von move und plot ob die Distanz zwischen beiden Bällen kleiner als die Summe ihrer Radien ist.

Falls dies der Fall ist wird die Füllfarbe auf rot gesetzt, andernfalls auf weiß.

Referenzen

ÄHNLICHE DOKUMENTE

Als Inspiration kannst du die folgenden Ideen nehmen, aber auch stattdessen eigene programmieren.. Schreibe deine Klassen und füge Objekte dieser dem Animation

Initialisiere dieses Objekt, füge ball mittels addTo zu root hinzu und führe auf ball im Game Loop die Methode move() aus. Schreibe ebenfalls einen Konstruktor und die Methoden

Diese soll auf Tastendruck einen Kreis zeichnen der stets mit einer zufälligen Farbe gefüllt wird. Führe bei Bedarf neue

Was musst du im Code ändern, damit das Sample beendet wird, sobald die verantwortliche Taste losgelassen wird?.

Bewegen wir unsere Maus über den Rechtecken soll nun immer das darunter liegende rot leuchten, die anderen bleiben weiß. Nutze dazu if, else

In der Methode sollen mit einer Schleife die übergebenen Integer des Arrays durchlaufen werden und für jede Zahl unter 1 eine Leerstelle und für jede andere Zahl ein * in der

Schreibe eine Methode „moveUp“, die den Schläger vertikal nach oben bewegt und eine Methode „moveDown“, die eine Bewegung nach

Rufe im EventHandler abhängig von der gedrückten Taste die Methoden setUP und setDOWN, sowie stop auf beiden Bat-Objekten auf.. Passe die Dimension des Fensters (w und h in