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