Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

finalChallenge(7);

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 1

BouncingBall 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 Processing_7_1