diff --git a/frontend/core/src/com/game/tankwars/model/Terrain.java b/frontend/core/src/com/game/tankwars/model/Terrain.java new file mode 100644 index 0000000000000000000000000000000000000000..c7b143e9b58b7c1796d64a3a80c7566a6f3cf403 --- /dev/null +++ b/frontend/core/src/com/game/tankwars/model/Terrain.java @@ -0,0 +1,47 @@ +package com.game.tankwars.model; + +import com.badlogic.gdx.math.Vector2; +import com.badlogic.gdx.physics.box2d.Body; +import com.badlogic.gdx.physics.box2d.BodyDef; +import com.badlogic.gdx.physics.box2d.ChainShape; +import com.badlogic.gdx.physics.box2d.FixtureDef; +import com.badlogic.gdx.physics.box2d.World; + +import java.util.Arrays; + +public class Terrain { + World world; + Body body; + final Vector2[] vertices; + Vector2 position; + + public Terrain(){ + + float xStart = -5; + float xEnd = 100; + float yMin = 1f; + float yMax = 10; + int points = 10; + int vertNumber = 1000; + + this.world = Box2dWorld.getWorld(); + BodyDef bodyDef = new BodyDef(); + bodyDef.type = BodyDef.BodyType.StaticBody; + bodyDef.position.set(0,0); + + vertices = new TerrainGenerator(xStart, xEnd, yMin, yMax, points).generateVertices(vertNumber); + + ChainShape chainShape = new ChainShape(); + chainShape.createChain(vertices); + + FixtureDef fixtureDef = new FixtureDef(); + fixtureDef.friction = 0.5f; + fixtureDef.restitution = 0; + fixtureDef.shape = chainShape; + + body = world.createBody(bodyDef); + body.createFixture(fixtureDef); + + chainShape.dispose(); + } +} diff --git a/frontend/core/src/com/game/tankwars/view/GameScreen.java b/frontend/core/src/com/game/tankwars/view/GameScreen.java index 7247d8ddbafa77224753cadf34d393258b117ab0..1b23b2796ece6de15555355f88225d85c947f321 100644 --- a/frontend/core/src/com/game/tankwars/view/GameScreen.java +++ b/frontend/core/src/com/game/tankwars/view/GameScreen.java @@ -19,6 +19,7 @@ import com.game.tankwars.TankWarsGame; import com.game.tankwars.model.Box2dWorld; import com.game.tankwars.model.Bullet; import com.game.tankwars.model.Tank; +import com.game.tankwars.model.Terrain; public class GameScreen implements Screen { final TankWarsGame tankWarsGame; @@ -32,6 +33,7 @@ public class GameScreen implements Screen { private Tank tank; private Box2dWorld model; private World world; + private Terrain terrain; private OrthographicCamera cam; private Box2DDebugRenderer debugRenderer; @@ -51,6 +53,9 @@ public class GameScreen implements Screen { tank = new Tank(tankPos, new Texture("tank-khaki.png")); horizontalScaling = Gdx.graphics.getWidth() / VIEWPORT_WIDTH; verticalScaling = Gdx.graphics.getHeight() / VIEWPORT_HEIGHT; + + terrain = new Terrain(); + } @Override public void render(float delta) {