2017-01-09 2 views
1

Mein Verarbeitungscode basiert auf dem Oscillation-Kapitel von Nature Of Code von Daniel Shiffman, hauptsächlich die Beispiele, in denen er einen Mover entsprechend der Richtung dreht, in die er sich bewegt (die Maus). Es funktioniert nicht, obwohl ich mir ziemlich sicher bin, dass es irgendwo einen kleinen Fehler gibt. Das Rechteck fliegt nur außerhalb des Bildschirms. Beispiel aus dem Buch (nicht vollständig)Verarbeitung des Trigonometriecodes funktioniert nicht

void display() { 
float angle = velocity.heading2D; 
stroke(0); fill(175); pushMatrix(); rectMode(CENTER);    
translate(location.x,location.y); 
rotate (angle); 
rect(0,0,30,10); 
popMatrix(); 
} 

Mein Code:

void show() { 
angle = velocity.heading2D(); 
rectMode(CENTER); 
pushMatrix(); 
translate(location.x,location.y); 
rotate(angle); 

fill(255,20,20,150); 
rect(location.x,location.y,carSize,carSize); 
popMatrix(); 
} 

Einrichtung und zeichnen:

Car car ; 
void setup() { 
car = new Car(); 
} 

void draw() { 
mouse = new PVector(mouseX,mouseY); 
background(255); 
car.show(); 
car.move(); 
car.update(); 
} 
+0

Können Sie bitte eine [mcve] posten? Statt nur die gesamte Klasse ohne 'setup()' - oder 'draw()' -Funktionen zu posten (was bedeutet, dass wir Ihren Code nicht ausführen können), beschränken Sie Ihr Problem auf einige wenige Codezeilen. –

+0

Tut mir leid, ich werde es ändern. – udbhavs

+0

Auch ich weiß nicht, was die Übersetzung (location.x, location.y) tut – udbhavs

Antwort

1

Habe ich es endlich. Statt

translate(location.x,location.y); 
rect(location.x,location.y,40,40); 

Es musste sein:

translate(location.x,location.y); 
rect(0,0,40,40);  

, weil die Übersetzung schon nimmt den Ursprungspunkt der Lage des Objekts, und das ist, wo ich es zeichnen möchten (0,0).

Verwandte Themen