1. Oktober 2013
KLASSE - ENDAUFGABE http://blogs.iad.zhdk.ch/codingspace/lektionen/klassen/ http://blogs.iad.zhdk.ch/codingspace/endaufgabe/ MITTWOCH, 25.09.2013 Die Klassen, die alles vereinfachen, war das vormittags Thema. Am Nachmittag wurde uns die Endaufgabe vorgestellt und wir durften damit starten. EIGENERFAHRUN Die Klassen vereinfachen aufjeden Fall die Sache, sofern man sie weiss anzuwenden. Die Aufsplitung der Struktur kenne ich zwar, doch ist es eine Weile her seit dem letsten Mal als ich die Klassen im Java benutzte. Die Endaufgabe ist ein wenig gewagt. Ich verbrachte den Nachmittag mich mit dem vorhandenen Code zurecht zu finden. Beispiel 1BouncingBall ball1; BouncingBall ball2; PVector p1 = new PVector(); PVector p2 = new PVector(); boolean drag = false; boolean overBall = false; int ballSize = 50; int value = 0; void setup() { size(800, 600); ball1 = new BouncingBall(ballSize, ballSize, loadImage("ball2.png")); ball2 = new BouncingBall(ballSize, ballSize, loadImage("tennisball.png")); // png bild soll zentriert sein imageMode(CENTER); smooth(); } void draw() { // hintergrund loeschen //background(255); // ghosting fill(255, 255, 255, 60); rect(0, 0, width, height); if (drag && value == 0 ) { // zeichne die abschussrichtung p1.set(ball1._pos.x, ball1._pos.y, 0); line(p1.x, p1.y, p2.x, p2.y); } else if (drag && value == 1) { p1.set(ball2._pos.x, ball2._pos.y, 0); line(p1.x, p1.y, p2.x, p2.y); } // zeichne den ball ball1.draw(); ball2.draw(); if (dist(ball1._pos.x, ball1._pos.y, ball2._pos.x, ball2._pos.y)<=ball1._h) { ball1._dir.x *= -1; ball1._dir.y *= -1; ball2._dir.x *= -1; ball2._dir.y *= -1; println("hallo"); } } void keyPressed() { if (value == 0) { value = 1; } else { value = 0; } } void mousePressed() { if (mouseX > ball1._pos.x && mouseX < ball1._pos.x && mouseY > ball1._pos.y && mouseY < ball1._pos.y ) { overBall = false; } else { overBall = true; } drag = true; p1.set(ball1._pos.x, ball1._pos.y, 0); p2.set(mouseX, mouseY, 0); } void mouseDragged() { p2.set(mouseX, mouseY, 0); } void mouseReleased() { drag = false; // abschuss staerke berechnen PVector dir = PVector.sub(p2, p1); // laenge verkuerzen dir.mult(.09); // der ball wird neu ausgerichtet ball1.set(ball1._pos, dir, .993); ball2.set(ball2._pos, dir, .981); }Output 1