Hilfe ich habe eine Frage zu processing wie muss ich es coden wen zum Beispiel eine Ellipse auf ein rect ,,zufährt,, und dann vom rect abprallen soll?

...komplette Frage anzeigen

2 Antworten

Schreib einfach, dass wenn die Koordinate des Rechten äußeren Randes der Ellipse == wie der linke rand des Rechts, dann soll die moveX = -moveX sein

Leonard3w 01.08.2017, 16:01

Jo vielen dank hat mir weiter geholfen

0
michi1202 01.08.2017, 16:03

Verstehst du was ich meine? Kanns dir Grad nicht ausführlicher erklären....keine Zeit

0
Leonard3w 01.08.2017, 16:13
@michi1202

habe es gerade ausprobiert aber bekomme es irgendwie nicht hin wie mach ich das wenn die

ellipse(200, 200, 50, 50); 

und das rect

rect(400, 0, 70, 500);

ist

0
Leonard3w 01.08.2017, 16:19
@michi1202

habe es gerade ausprobiert aber bekomme es irgendwie nicht hin wie mach ich das wenn die
ellipse(200, 200, 50, 50); 
und das rect
rect(400, 0, 70, 500);
ist
ich habe es gemacht wie du es gesagt hast aber dann dann stöhst die Ellipse ja nur von der Höhe in dem fall 70 ab aber wenn die Ellipse unten durch fahren soll also dort wo das rect dann nicht mehr ist wie mache ich das?Weil mein rect geht ja nicht über den ganzen Bildschirm sondern zum Beispiel nur über die hälfte und dort wo es ist soll es abprallen und dort wo es nicht ist soll sie durchgehen

0
pondycherry1999 12.08.2017, 07:19

benutze variablen (vom rect und von der ellipse) kontrolliere dann immer, ob sich die Figuren (mit Hilfe der Variablen )"treffen" und änder dann die Laufbahn

0
pondycherry1999 12.08.2017, 07:29

z.B. int Ex= 200; int Ey = 200; int Rx = 400; int Ry = 0; void draw() { rect(Rx, Ry, 70, 500); rect(Ex, Ey, 50, 50); ChangeVar(); } void ChangeVar() { //Wenn sie nach rechts fährt if(rigth){ Rx +=.... Ry += .... Ey += ... Ex += .... }else{ Rx -= .... Ry -=.... Ex -=.... Ey -=.... } } das war ein Beispiel, wie du es machen müsstest....kleinere Details wie zum Beispiel wie es abbiegt musst du noch hinzufügen, da das hier nur zum Prinzip gehört

0

ich hab dir hier ein kleines Beispiel geschrieben

Rectangle a;
Rectangle b;

void setup() {
size(600, 600);
a = new Rectangle(200, 100, 70, 120);
b = new Rectangle(100, 100, 50, 50);
}

void draw() {
background(100);

b.x = mouseX;
b.y = mouseY;


if (a.checkCollision(b)) {
a.col = color(255,100,100);
// print("collision");
}else{
a.col = color(100,100,100);
}
a.drawRectangle();
b.drawRectangle();
}



private class Rectangle {
private float x, y, w, h;
private color col;

private Rectangle(float x, float y, float w, float h) {
this.x = x;
this.y = y;
this.w = w;
this.h = h;
}

private void drawRectangle() {
rectMode(CORNER);
fill(col);
rect(x, y, w, h);
}

private boolean checkCollision(Rectangle b) {
return (this.x+this.w)>b.x && (this.x<(b.x+b.w)) && (this.y+this.h)>b.y && (this.y<(b.y+b.h));
}
}

Was möchtest Du wissen?