Package ds.ihm.gui

Source Code of ds.ihm.gui.Gay

package ds.ihm.gui;

import javax.media.j3d.Canvas3D;
import javax.swing.JFrame;

import ds.ihm.Ihm;
import ds.ihm.clavier.EcouteurClavier;
import ds.ihm.gui.ctrl.PanelVisuRoute;
import ds.ihm.gui.launch.PanelChoix;
import ds.ihm.gui.render.PanelConduite;
import ds.ihm.gui.render.j3d.InterfaceJ3D;
import ds.ihm.gui.render.j3d.Vue3D;
import ds.moteur.Scene;
import ds.moteur.Terrain;
import ds.moteur.geometrie.Angle3D;
import ds.moteur.geometrie.Point;
import ds.moteur.route.Section;
import ds.moteur.route.cc.CourbeConduite;
import ds.moteur.voiture.Voiture;

public class Gay implements InterfaceGraphique {

  private Ihm ihm;
 
  private JFrame fenetreCtrl;
  private PanelVisuRoute visuRoute;
  private PanelConduite render;
  private InterfaceJ3D vue3D;
 
  private JFrame fentreLancement;
  private PanelChoix lancement;
 
  public Gay(Ihm ihm){
    this.ihm = ihm;
  }
 
  public void afficherEcranDemarrage(boolean joystickActif){
    this.lancement = new PanelChoix(this.ihm);
    this.lancement.init(joystickActif);
    this.fentreLancement = new JFrame("Driver Simulator Demarrage");
    this.fentreLancement.add(lancement);
    this.fentreLancement.setLocation(200, 200);
    this.fentreLancement.setVisible(true);
    this.fentreLancement.pack();
    this.fentreLancement.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
 
  public void detruireEcranDemarrage(){
    this.lancement = null;
    this.fentreLancement.dispose();
  }
 
  public void init(EcouteurClavier clavier){
    this.render = new PanelConduite();
    Canvas3D c3d = this.render.init();
    this.vue3D = new Vue3D(c3d);
    JFrame fenetreRender = new JFrame("Render");
    fenetreRender.add(render);
    fenetreRender.setVisible(true);
    fenetreRender.pack();
    fenetreRender.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    fenetreRender.setFocusable(true);
    fenetreRender.setResizable(false);
    fenetreRender.requestFocus();
    fenetreRender.addKeyListener(clavier);
   
    this.fenetreCtrl = new JFrame("Driver Simulator");
    this.visuRoute = new PanelVisuRoute();
    this.fenetreCtrl.add(visuRoute);
    this.fenetreCtrl.setVisible(true);
    this.fenetreCtrl.pack();
    this.fenetreCtrl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.fenetreCtrl.setLocation(800, 0);
  }
 
  public void chargerTerrain(Terrain terrain){
    for (Section section : terrain.getSections()){
      vue3D.dessinerSurface(section.getFrontiere().getSommets());
     
      for (CourbeConduite cc : section.getCourbesConduites()){
        vue3D.dessinerLigne(cc.getPositionsIntermediaires());
      }
    }
    vue3D.creerVoiture1(1.7f, 1.7f, 3f);
    vue3D.creerVoiture2(1.7f, 1.7f, 3f);
    //vue3D.setHeure(12);
  }

  public void afficherScene(Scene scene) {
    visuRoute.setScene(scene);
    visuRoute.repaint();
   
    Point point = scene.getVoitureJoueur().getPositionAvant();
    vue3D.deplacerCamera((float)point.y, (float)point.z + 1.0f, (float)point.x, (float)(scene.getVoitureJoueur().getAngle().theta + Math.PI), 0);
   
    Voiture voiture = scene.getVoitures().get(0);
    Point pVoiture = voiture.getPositionAvant();
    Angle3D angleVoiture = voiture.getAngle();
    vue3D.deplacerVoiture1((float)pVoiture.y, (float)pVoiture.z, (float)pVoiture.x, (float)angleVoiture.theta, 0);
   
    Voiture voiture2 = scene.getVoitures().get(1);
    Point pVoiture2 = voiture2.getPositionAvant();
    Angle3D angleVoiture2 = voiture2.getAngle();
    vue3D.deplacerVoiture2((float)pVoiture2.y, (float)pVoiture2.z, (float)pVoiture2.x, (float)angleVoiture2.theta, 0);
   
    render.getTableauBord().afficherVoiture(scene.getVoitureJoueur());
  }
}
TOP

Related Classes of ds.ihm.gui.Gay

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.