From b7792590d86fd9937590acfbc691d610fec06a18 Mon Sep 17 00:00:00 2001
From: Villard PierreFrederic <pierre-frederic.villard@univ-lorraine.fr>
Date: Thu, 23 Sep 2021 15:52:40 +0200
Subject: [PATCH] Extract JeuPhysique and BouclePrincipal in the main package

---
 src/{ => main}/BouclePrincipale.java         | 10 +--
 src/{ => main}/JeuPhysique.java              |  6 +-
 test/miscellaneous/BouclePrincipaleCool.java | 65 +++++++++++++++++++-
 test/testFighter.java                        |  1 +
 test/testMario.java                          |  1 +
 5 files changed, 76 insertions(+), 7 deletions(-)
 rename src/{ => main}/BouclePrincipale.java (88%)
 rename src/{ => main}/JeuPhysique.java (90%)

diff --git a/src/BouclePrincipale.java b/src/main/BouclePrincipale.java
similarity index 88%
rename from src/BouclePrincipale.java
rename to src/main/BouclePrincipale.java
index 87c17e7..f8314ef 100644
--- a/src/BouclePrincipale.java
+++ b/src/main/BouclePrincipale.java
@@ -1,14 +1,16 @@
+package main;
+
 import controle.ControleurClavier;
 
 
 
 public class BouclePrincipale {
 
-        String nom="Mon super Jeu";
-        int fps=100;
-        JeuPhysique jeuPhysique;
+        public String nom="Mon super Jeu";
+        public int fps=100;
+        public JeuPhysique jeuPhysique;
         //creation du controleur
-        ControleurClavier cClavier;
+        public ControleurClavier cClavier;
         
     
         public void setName(String nom){
diff --git a/src/JeuPhysique.java b/src/main/JeuPhysique.java
similarity index 90%
rename from src/JeuPhysique.java
rename to src/main/JeuPhysique.java
index d4fbfc0..dfc2edb 100644
--- a/src/JeuPhysique.java
+++ b/src/main/JeuPhysique.java
@@ -1,3 +1,5 @@
+package main;
+
 /* ========================================================== */
 /*                  Bibliotheque MoteurDeJeu                  */
 /* --------------------------------------------               */
@@ -17,10 +19,10 @@ import java.io.IOException;
 public class JeuPhysique{
 	
 	//le moteur physique
-	MoteurPhysique moteurPhys;
+	public MoteurPhysique moteurPhys;
 	
 	//le rendu
-	Afficheur affiche;
+	public Afficheur affiche;
 
 	
 	int i=0;
diff --git a/test/miscellaneous/BouclePrincipaleCool.java b/test/miscellaneous/BouclePrincipaleCool.java
index d0c63fe..5b1c629 100644
--- a/test/miscellaneous/BouclePrincipaleCool.java
+++ b/test/miscellaneous/BouclePrincipaleCool.java
@@ -10,10 +10,73 @@
  /* ========================================================== */
 package miscellaneous;
 
+import main.BouclePrincipale;
+import controle.ControleurClavier;
+
 /**
- *
+ * 
+ * 
  * @author Pierre-Frederic Villard
  */
 public class BouclePrincipaleCool extends BouclePrincipale{
     
+    @Override
+    public void lanceBouclePrincipale() throws Exception {
+		
+
+		//ControleurClavier cClavier=new ControleurClavier(true);
+		jeuPhysique.affiche.addKeyListener(cClavier);
+		//mettre l'acces au controleur dans monde
+		jeuPhysique.moteurPhys.monde.c=cClavier.c;
+		
+		//afficher
+		System.out.println("\n\n**************************************************");
+		System.out.println("*  "+nom);
+		System.out.println("*                                                 *");
+		System.out.println("*** touche 'Q' pour arreter jeu                  ***");
+		System.out.println("****************************************************");
+		System.out.println("\n\n");
+		
+		//fps
+		long dureeBoucle=1000000/fps;
+		System.out.println(" ---> duree d'une boucle "+dureeBoucle/1000.);		
+		
+		//lancement
+		Thread.sleep(1000);
+		jeuPhysique.affiche.requestFocusInWindow();
+		
+		// boucle
+		long beforeTime = System.nanoTime();
+		long l = System.currentTimeMillis();
+		//nombre iterations
+		int n=0;
+		while(!ControleurClavier.fin)
+		{	
+			n++;
+			jeuPhysique.update();
+			jeuPhysique.render();
+			
+			//apres le render en nanos
+			long timafter=System.nanoTime();
+				
+			//sleep en millisecond
+			while(System.nanoTime()-beforeTime-dureeBoucle*1000L<0)
+				{
+				}
+			beforeTime=System.nanoTime();
+						
+		}
+		long l2 = System.currentTimeMillis();
+
+
+		// statistiques
+		System.out.println("\n\n\n************************\n");
+		System.out.println("Iterations = "+n);
+		System.out.println("FPS = " + (n * 1000.0 / (l2 - l)));
+		System.out.println("\n************************");
+
+		
+		System.exit(0);
+	}
+
 }
diff --git a/test/testFighter.java b/test/testFighter.java
index 5982fd8..c48df2e 100644
--- a/test/testFighter.java
+++ b/test/testFighter.java
@@ -1,4 +1,5 @@
 
+import main.BouclePrincipale;
 import afficheur.Afficheur;
 import controle.ControleurClavier;
 import miscellaneous.MurCool;
diff --git a/test/testMario.java b/test/testMario.java
index 7dac31b..005fe45 100644
--- a/test/testMario.java
+++ b/test/testMario.java
@@ -14,6 +14,7 @@
  * @author Pierre-Frederic Villard
  */
 
+import main.BouclePrincipale;
 import miscellaneous.MurCool;
 import afficheur.Afficheur;
 import afficheur.Repere;
-- 
GitLab