Car1.java – sample object from week3 java comp102x @ edx.org
import comp102x.Canvas;
import comp102x.ColorImage;
import java.io.PrintStream;
public class Car1
{
String owner = "NoName";
ColorImage carImage = new ColorImage("c5.png");
ColorImage wImage = new ColorImage(800, 600);
int odometer = 0;
public Car1() {
Canvas canvas = new Canvas();
canvas.add(wImage);
canvas.add(carImage, 200, 200);
}
public Car1(String nameOfOwner)
{
owner = nameOfOwner;
carImage = new ColorImage();
Canvas canvas = new Canvas();
canvas.add(wImage);
canvas.add(carImage, 200, 200);
}
public void move(int dist)
{
double radian = Math.toRadians(carImage.getRotation());
double distX = dist * Math.cos(radian);
double distY = dist * Math.sin(radian);
odometer += dist;
carImage.setX(carImage.getX() + (int)distX);
carImage.setY(carImage.getY() + (int)distY);
}
public void moveCar(int dist) {
int unit = 10;
int steps = Math.abs(dist / unit);
if (dist < 0) unit = -unit;
for (int i = 0; i < steps; i++) {
move(unit);
pause(20);
}
}
public void turnCar(int rotateAngle) {
double rAngleRadian = Math.toRadians(1.0D);
double radius = carImage.getWidth() * 2.0D;
while (rotateAngle > 0) {
carImage.setRotation((int)(carImage.getRotation() + 1.0D) % 360);
double moveDist = Math.abs(2.0D * radius * Math.sin(rAngleRadian / 2.0D));
move((int)moveDist);
rotateAngle--;
pause(10);
}
}
public static void pause(int sleepTime)
{
try {
Thread.sleep(sleepTime);
} catch (InterruptedException e) {
System.err.println("Error in running rotation animation!");
System.exit(-1);
}
}
}