Package graphics

Source Code of graphics.GraphicsRobberyCar

package graphics;

import java.awt.*;
import javax.swing.Icon;
import javax.swing.ImageIcon;

import _main.Game;
import vehicles.*;
import route.Route;
import cross.*;

public class GraphicsRobberyCar extends AbstractGraphicsObject {

  int xp;
  int yp;

 
  int rotation;
  Draw draw;
  RobberyCar ord;
  private Icon image;
  private Icon image1;
  private Icon image2;
  private Icon image3;
  private Icon image4;
  private Icon image5;
  private Icon image6;
  private Icon image7;
  private Icon image8;
  Point desiredRoute1;
  Point desiredRoute2;
 
  /**
   * GraphicsRobberyCar konstruktora, beolvassuk a felhasznalt kepeket a megfelelo attributumokba
   * a kesobbi felhasznalas celjabol
   */
  public GraphicsRobberyCar(){
    try {
    image = new ImageIcon("images/ordinarycar1.gif","ordinary car"); //egy ilyen imageIcont kell letrehozni
      image1 = new ImageIcon("images/rablo1.gif","ordinary car"); //egy ilyen imageIcont kell letrehozni
      image2 = new ImageIcon("images/rablo2.gif","ordinary car"); //egy ilyen imageIcont kell letrehozni
      image3 = new ImageIcon("images/rablo3.gif","ordinary car"); //egy ilyen imageIcont kell letrehozni
      image4 = new ImageIcon("images/rablo4.gif","ordinary car"); //egy ilyen imageIcont kell letrehozni
      image5 = new ImageIcon("images/rablo5.gif","ordinary car"); //egy ilyen imageIcont kell letrehozni
      image6 = new ImageIcon("images/rablo6.gif","ordinary car"); //egy ilyen imageIcont kell letrehozni
      image7 = new ImageIcon("images/rablo7.gif","ordinary car"); //egy ilyen imageIcont kell letrehozni
      image8 = new ImageIcon("images/rablo8.gif","ordinary car"); //egy ilyen imageIcont kell letrehozni
    }
      catch (Exception e) {
           e.printStackTrace();
     }

  }
  /**
   * beallitjuk az adott bankrablot
   * @param o RobberyCar
   */
  public void setRobberyCar(RobberyCar o){
    ord = o;
  }
  /**
   * elkerjuk a bankrablo koordinatait
   * @return Point: koordinata
   */
  public Point getPosition(){
    return new Point(xp,yp)
  }
  public Icon getImage(){return image;}
 
  /**
   * Beallitjuk az adott draw-t
   * @param d Draw
   */
  public void setDraw(Draw d){
    draw = d;
  }
  /**
   * kiszamoljuk a megjeleniteshez szukseges valtozok ertekeit
   */
  public void calcGraphics(){
   
    MainGraphics gr = Game.getInstance().getMap().getGraphics();
   
    Route r = ord.getRoute();
    //ha nem keresztezodesben van az auto
    if (r!=null || ord.getCross()!=null )
    {
      // ket csompont koordinatainak lekerese
    Cross cr1 = r.getStartCross();
    Point cr1p = gr.getGraphicsFromObject(cr1).getPosition();
    Cross cr2 = r.getEndCross();
    Point cr2p = gr.getGraphicsFromObject(cr2).getPosition();
    // konkret pozicio kiszamolasa
    xp = (cr2p.x-cr1p.x)*ord.getPosition()/r.getLength()+cr1p.x;;   
    yp = (cr2p.y-cr1p.y)*ord.getPosition()/r.getLength()+cr1p.y;;
    System.out.println(xp+","+yp);
   
    Route showRoute; // melyik utat mutassuk

    Cross c;
   
    // lek�rj�k melyik a pillanatnyi kijel�lt tov�bbi �t
    if (ord.getCurrentSpeed()<0 )
    {
      //ha szembe megyunk a forgalommal a StartCross kell
      c = ord.getRoute().getStartCross();       
    }
    else {
      // ha normalisan megyunk
      c = ord.getRoute().getEndCross();
    }
 
    int dir = ord.getDesiredDirection();
    int in_db = c.getInRoutes().size();
    int out_db =c.getOutRoutes().size();
    System.out.println("dir:"+dir+" in_db:"+in_db+" out_db:"+out_db);
    //ha tul nagy a kivalasztott ut szama, lejjebb visszuk
    if (dir>=in_db+out_db)
    {
      dir=0;
      ord.setDesiredDirection(dir);
    }
   
    //ha a dir kisebb mint a bemeno utak szama, akkor a bemeno utlistabol jelolunk ki
    if (dir<in_db)
    showRoute = c.getInRoutes().get(dir);
    //kulonben mar a kimeno utlistabol kell kivalasztanunk a kijelolt utat
    else showRoute = c.getOutRoutes().get(dir-in_db);
 
   
    // megvan a kimen� utunk showRoute szem�ly�ben
    // ennek k�rj�k le a k�t koordin�t�j�t
   
    Cross r1 = showRoute.getStartCross();
    desiredRoute1 = gr.getGraphicsFromObject(r1).getPosition();
    Cross r2 = showRoute.getEndCross();
    desiredRoute2 = gr.getGraphicsFromObject(r2).getPosition();
   
   
   
    // be�llitja forgat�s szerint a k�pet, figyelni kell, hogy ford�tva megy-e
    rotation = calcRotation(cr1p,cr2p);
   
    if (ord.getCurrentSpeed()<0){   
      rotation+=4;
      if (rotation>8) rotation-=8;
    }
    setRotateImage(rotation);
   
   
    // ha keresztezodesben van az auto
    else{
      Point crp = gr.getGraphicsFromObject(ord.getCross()).getPosition();
      xp = crp.x;
      yp = crp.y;
    }
    draw.drawing((Object)this,gr.getGraphic());
   
  }
  /**
   * lekerjuk a bankrablo altal kivalasztott ut kezdo csomopontjanak koordinatait
   * @return Point koordinata
   */
  public Point getDesiredRoute1(){
    return desiredRoute1;
  }
  /**
   * lekerjuk a bankrablo altal kivalasztott ut vegcsomopontjanak koordinatait
   * @return Point koordinata
   */
  public Point getDesiredRoute2(){
    return desiredRoute2;
 
 
  /**
   * beallitja az autonal melyik forgatott kepet mutassa
   * @param n 1..8-ig az autok kepei
   */
  public void setRotateImage(int n){
    switch(n){
      case 1: image = image1;break;
      case 2: image = image2;break;
      case 3: image = image3;break;
      case 4: image = image4;break;
      case 5: image = image5;break;
      case 6: image = image6;break;
      case 7: image = image7;break;
      case 8: image = image8;break;
   
    }
  }
 
}

TOP

Related Classes of graphics.GraphicsRobberyCar

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.