3058 (Car1.java/edx.org-week3-java-intro)

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);
    }
  }
}

Leave a comment