Posted by Dana on 23/06/2010 – 22:22
Hey!
Sagt mal, gibt es eigentlich einen if-Befehl, der sich auf Bilder bezieht?
Also á la “wenn Klick auf image XY, tu dies und das”?
Man soll bei meinem Sketch auf die Bilder klicken können und Musik spielt ab, aber es ist doch recht mühselig, jedes mal diese Koordinaten zu suchen fürs mouseX und mouseY..
Gibt es da sowas cooles?
Dana
Posted by stephan on 23/06/2010 – 16:12
Filed under cc1, help, input

Hier das versprochene Beispiel vom heutigen Tag.
Beispiel Downloaden
Ihr werdet sicher mitbekommen haben, dass wenn ihr Positionen bzw. Größen für Elemente mit mouseX oder mouseY belegt und den Hintergrund (background) nicht neu zeichnet, dann wird immer links oben das Element gezeichnet auch wenn das nicht beabsichtigt ist. Um das zu umgehen müsst ihr vor dem zu zeichnenden Element einen if-Befehl schreiben if(mouseX != 0){} und schon wird nur das Element gezeichnet wenn ihr es auch wirklich wollt. Hier ein kleines Beispiel:
void setup(){
size(400, 400);
background(100, 255, 100);
noStroke();
fill(255, 100, 0, 20);
}
void draw(){
// zeichne das Dreieck erst, wenn die Mouse im Sketchfenster ist
if(mouseX != 0){
triangle(width/2, height/2, mouseX , mouseY - 50, mouseX, mouseY + 50);
}
}
Posted by jgruen on 27/04/2010 – 22:03
hallo, wir hatten doch letzte woche diese maustrackanimation durchgenommen.Ich hab jedoch meine sketches nicht richtig gesopeichert und grübele nun verzweifelt, wie es ging. Ich hab inzwischen wieder rekonstruiert bekommen, wie sie im allgemeinen funktioniert, finde aber nich mehr heraus wie ich dieses nachfedern bewerkstellige :-(
Edit: Hier der Code:
float ballX, ballY, oldBallX, oldBallY, zielX, zielY = 0;
float easing = .05;
float reibung = .9;
void setup() {
size(400,400);
smooth();
}
void draw() {
background(255);
float traegheitX = ballX - oldBallX;
float traegheitY = ballY - oldBallY;
oldBallX = ballX;
oldBallY = ballY;
ballX += (zielX - ballX) * easing + traegheitX * reibung;
ballY += (zielY - ballY) * easing + traegheitY * reibung;
fill(0);
ellipse(ballX, ballY, 10, 10);
}
void mousePressed() {
zielX = mouseX;
zielY = mouseY;
}
Hey .. auch dein Programm ist gefixed und wird morgen so präentiert werden können. Du musst nur noch einen Sound in den date/ Ordner packen und richtig mit dem Programm verlinken (Ich habe einen Dummysound eingefügt).
-steffen
lukasz
Hey .. ich habe dir dein Problem gefixed und nun läuft dein Programm morgen ganz sicher.
-steffen
flower
Hallo lukasz.
Ich habe dir mal deinen Quellcode etwas umgeschrieben und vola es funktioniert :) Schau dir den Anhang an, ich glaube es ist recht einfach zu verstehen, denn ich habe überall wo es wichtig ist Kommentare angefügt.
-steffen
Flocking
Hallo Katja, ich habe dir mal ein ganz einfaches Beispiel geschrieben und im Quellcode alles beschrieben. Schau es dir an. Es ist genau so wie du es haben wolltest. Wenn jemand in das rote Rechteck klickt, fliegt ein zweites Bild nach oben raus.
Wenn du weitere Frage hast, dann los.
-steffen
Bild Hittest -> Animation
Du ich denke nicht das das der akteulle Quellcode ist, denn der Turtel wird überhaupt nicht überfahren. Es gibt gar keine Punkte in dem Spiel. Hä?
-steffen
Ach und bitte lad ‘desch nächste mal gleich alles als zip File hoch.
Hallo Ihr beiden.
Ich habe euch alle fehlenden Interaktionen eingebaut. War nicht viel.
Falls ihr weitere Fragen habt, dann los :)
-steffen
kueche