From b7edfbfa296a410f145d296078feb4fe57486094 Mon Sep 17 00:00:00 2001
From: timeo <timeo.jacquier@gmail.com>
Date: Sun, 12 Dec 2021 23:20:14 +0100
Subject: [PATCH] final

---
 core/src/body/Joyau.java                 |  3 ++
 core/src/com/mygdx/game/PlatVenture.java |  1 +
 core/src/entities/B2DSprite.java         |  4 +--
 core/src/entities/Gem.java               | 16 ++++++++--
 core/src/etat/Play.java                  | 37 ++++++++++++++++++------
 5 files changed, 46 insertions(+), 15 deletions(-)

diff --git a/core/src/body/Joyau.java b/core/src/body/Joyau.java
index 1843e31..3882afa 100644
--- a/core/src/body/Joyau.java
+++ b/core/src/body/Joyau.java
@@ -14,6 +14,8 @@ public class Joyau {
     CircleShape shapeStruct;
     private int value;
     private float x;
+    private float y;
+    private World world;
 
     public Joyau(float x, float y, World world, char value){
         BodyDef bodyDef = new BodyDef();
@@ -46,4 +48,5 @@ public class Joyau {
     public int getValue() {
         return value;
     }
+
 }
\ No newline at end of file
diff --git a/core/src/com/mygdx/game/PlatVenture.java b/core/src/com/mygdx/game/PlatVenture.java
index 92e5016..e8d1646 100644
--- a/core/src/com/mygdx/game/PlatVenture.java
+++ b/core/src/com/mygdx/game/PlatVenture.java
@@ -104,5 +104,6 @@ public class PlatVenture extends ApplicationAdapter {
 		res.loadTexture("Back.png", "back");
 		res.loadTexture("Idle__000.png", "idle_000");
 		res.loadTexture("Water.png", "water");
+		res.loadTexture("Gem_1.png", "gem1");
 	}
 }
diff --git a/core/src/entities/B2DSprite.java b/core/src/entities/B2DSprite.java
index f7a2851..65b98ad 100644
--- a/core/src/entities/B2DSprite.java
+++ b/core/src/entities/B2DSprite.java
@@ -35,9 +35,7 @@ public class B2DSprite {
     }
 
     public void render(SpriteBatch sb) {
-        sb.begin();
-        sb.draw(animation.getFrame(), (body.getPosition().x * B2DVars.PPM - width / 2), (int) (body.getPosition().y * B2DVars.PPM - height / 2));
-        sb.end();
+        sb.draw(animation.getFrame(), 1, 1);
     }
 
     public Body getBody() { return body; }
diff --git a/core/src/entities/Gem.java b/core/src/entities/Gem.java
index 65b54fb..7cf3abf 100644
--- a/core/src/entities/Gem.java
+++ b/core/src/entities/Gem.java
@@ -6,13 +6,23 @@ import com.badlogic.gdx.physics.box2d.Body;
 import com.mygdx.game.PlatVenture;
 
 public class Gem extends B2DSprite{
+    private int value;
+
     public Gem(Body body) {
         super(body);
-        Texture tex = PlatVenture.res.getTexture("crystal");
-        TextureRegion[] sprites = TextureRegion.split(tex, 16, 16)[0];
-        animation.setFrames(sprites, 1 / 30f);
+        Texture tex = PlatVenture.res.getTexture("gem1");
+        TextureRegion[] sprites = TextureRegion.split(tex, 56, 56)[0];
+        animation.setFrames(sprites, 1 / 12f);
 
         width = sprites[0].getRegionWidth();
         height = sprites[0].getRegionHeight();
     }
+
+    public int getValue() {
+        return value;
+    }
+
+    public void setValue(int value) {
+        this.value = value;
+    }
 }
diff --git a/core/src/etat/Play.java b/core/src/etat/Play.java
index 3175b78..0b05900 100644
--- a/core/src/etat/Play.java
+++ b/core/src/etat/Play.java
@@ -7,7 +7,7 @@ import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.files.FileHandle;
 import com.badlogic.gdx.graphics.GL20;
 import com.badlogic.gdx.graphics.OrthographicCamera;
-import com.badlogic.gdx.graphics.g2d.SpriteBatch;
+import com.badlogic.gdx.graphics.g2d.BitmapFont;
 import com.badlogic.gdx.math.Vector2;
 import com.badlogic.gdx.physics.box2d.Body;
 import com.badlogic.gdx.physics.box2d.BodyDef;
@@ -17,13 +17,12 @@ import com.badlogic.gdx.physics.box2d.FixtureDef;
 import com.badlogic.gdx.physics.box2d.PolygonShape;
 import com.badlogic.gdx.physics.box2d.World;
 import com.badlogic.gdx.utils.Array;
-import com.badlogic.gdx.utils.GdxRuntimeException;
 import com.mygdx.game.PlatVenture;
 
-import body.Joyau;
 import body.Panneau;
 import body.Platform;
 import body.Water;
+import entities.Gem;
 import handlers.ContactListenerPerso;
 import handlers.Content;
 import handlers.GameStateManager;
@@ -43,6 +42,9 @@ public class Play extends GameState {
     private int level = 1;
     private boolean isChangingLevel = false;
     private float timeDoubleTap = 0f;
+    //BitmapFont font = new BitmapFont(Gdx.files.internal("Comic_Sans_MS_Bold.ttf"), false);
+
+    private Array<Gem> GemCollection = new Array<Gem>();
 
     private Content res;
 
@@ -67,8 +69,6 @@ public class Play extends GameState {
         textCam = new OrthographicCamera();
         b2dCam.setToOrtho(false, PlatVenture.largeur /PPM, PlatVenture.hauteur/PPM);
         textCam.setToOrtho(false, Gdx.graphics.getWidth() / PPM, Gdx.graphics.getHeight() / PPM);
-        //textCam.position.set(Gdx.graphics.getWidth() / PPM / 2, 0, 0);
-        //loadTexture();
 
 
     }
@@ -157,6 +157,10 @@ public class Play extends GameState {
             }
         }
 
+        for(int i = 0; i < GemCollection.size; i++) {
+            GemCollection.get(i).update(dt);
+        }
+
         b2dCam.update();
         textCam.update();
 
@@ -170,7 +174,11 @@ public class Play extends GameState {
         //Clear l'écran
         Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT);
         batch.setProjectionMatrix(b2dCam.combined);
+
         batch.begin();
+        for(int i = 0; i < GemCollection.size; i++) {
+            GemCollection.get(i).render(batch);
+        }
         drawWorld();
         batch.draw(PlatVenture.res.getTexture("idle_000"),  player.getPosition().x - 5f/PPM, player.getPosition().y - 2f/PPM, 1/10f, 1/10f);
         batch.end();
@@ -195,7 +203,6 @@ public class Play extends GameState {
         map = new char[hauteur][largeur];
         for (int i = hauteur; i > 0; i--){
             for (int j = 0; j < largeur; j++){
-                System.out.print(ligne[i].charAt(j));
                 char current = ligne[i].charAt(j);
                 map[i-1][j] = current;
                 switch (current){
@@ -221,7 +228,20 @@ public class Play extends GameState {
                         break;
                     case '1':
                     case '2':
-                        new Joyau((j*10)/PPM, ((hauteur-i) * 10)/PPM, world, current);
+                        BodyDef bodyDef = new BodyDef();
+                        bodyDef.type = BodyDef.BodyType.StaticBody;
+                        bodyDef.position.set((j*10)/PPM, ((hauteur-i)*10)/PPM);
+                        Body structBody = world.createBody(bodyDef);
+                        FixtureDef fixtureDefStruct = new FixtureDef();
+                        CircleShape shapeStruct = new CircleShape();
+                        shapeStruct.setRadius(1/PPM);
+                        shapeStruct.setPosition(new Vector2(5/PPM, 5/PPM));
+                        fixtureDefStruct.shape = shapeStruct;
+                        fixtureDefStruct.isSensor = true;
+                        structBody.createFixture(fixtureDefStruct).setUserData("joyau"+current);
+                        Gem g = new Gem(structBody);
+                        g.setValue(Character.getNumericValue(current));
+                        GemCollection.add(g);
                         break;
                     case 'Z':
                         new Panneau((j*10)/PPM, ((hauteur-i) * 10)/PPM, world);
@@ -230,7 +250,6 @@ public class Play extends GameState {
                 }
             }
 
-            System.out.println();
         }
     }
 
@@ -325,7 +344,6 @@ public class Play extends GameState {
             loadLevel(level);
             createPlayer();
             //player.setLinearVelocity(0, 0); // annule la vitesse linéaire du personnage
-            System.out.println("changing level");
             isChangingLevel = false;
 
             totalTimeSinceAction = 0;
@@ -367,6 +385,7 @@ public class Play extends GameState {
                         break;
                     case 'W':
                         batch.draw(PlatVenture.res.getTexture("water"), (j*10)/PPM, ((hauteur-i)*10)/PPM, 1/10f, 1/10f);
+                        break;
 
                 }
             }
-- 
GitLab