Links und Funktionen
Sprachumschaltung

Navigationspfad


Inhaltsbereich

Car.java

Hilfsklasse für Test.java

Java source code icon Car.java — Java source code, 2 KB (2163 bytes)

Dateiinhalt

import java.awt.Rectangle;
import java.awt.Point;
import java.awt.geom.Line2D;
import java.awt.geom.Ellipse2D;

/** Eine Klasse fuer Autos nach Horstmann, Kap 3 
    @author Martin Hofmann
    @version 1.0*/

public class Car {
    private int xLeft;
    private int yTop;
    private int size;

    /** Erzeugt ein Auto zu gegebener Position und Groesse.
 
    @param topleft Linke obere Ecke
    @param size Groesse des Autos (Radius eines Rades in Pixel) */
    public Car(Point topleft, int size) {
	this(topleft.x,topleft.y,size);
    }

    /** Aendert die Position
	@param topleft neue linke obere Ecke */
    public void move(Point topleft) {
	xLeft=topleft.x;
	yTop=topleft.y;
    }

    /** Alternativer Konstruktor *
	
    @param xLeft x Koordinate und @param yTop y Koordinate der linken oberen Ecke 
    @param size ist die Groesse */
    public Car(int xLeft,int yTop, int size) {
	this.xLeft=xLeft;
	this.yTop=yTop;
	this.size=size;
    }

    /** Zeichnet das Auto in ein GraphicsWindow. 
	@param gr das GraphicsWindow */
    public void draw(GraphicsWindow gr) {
	Rectangle body = new Rectangle(xLeft,yTop+size,6*size,size);
	Ellipse2D.Double frontTire=
	    new Ellipse2D.Double(xLeft+size,yTop+2*size,size,size);
	Ellipse2D.Double rearTire=
	    new Ellipse2D.Double(xLeft+4*size,yTop+2*size,size,size);
	Point r1 = new Point(xLeft+size,yTop+size);
	Point r2 = new Point(xLeft+2*size,yTop);
	Point r3 = new Point(xLeft+4*size,yTop);
	Point r4 = new Point(xLeft+5*size,yTop+size);

	Line2D.Double frontWindshield = new Line2D.Double(r1,r2);
	Line2D.Double roofTop = new Line2D.Double(r2,r3);
	Line2D.Double rearWindshield = new Line2D.Double(r3,r4);
	gr.draw(body);
	gr.draw(frontTire);
	gr.draw(rearTire);
	gr.draw(frontWindshield);
	gr.draw(roofTop);
	gr.draw(rearWindshield);
    }

    /** bewegt das Auto mit move. Das Auto wird an der alten 
	Position geloescht und an der neuen neu gezeichnet. @param gr das GraphicsWindow @param nach die neue Position */
    public void fahren(GraphicsWindow gr, Point nach) {
	gr.switchToBackgroundColor();
	draw(gr);
	move(nach);
	gr.switchToForegroundColor();
	draw(gr);
	gr.sleep(10);
    }
}






Artikelaktionen


Funktionsleiste