Added borders to level.
This commit is contained in:
parent
fed3680c18
commit
78d9890437
Binary file not shown.
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 132 KiB |
@ -61,7 +61,6 @@ public class EntityFactory {
|
|||||||
dummy.add(new CAI().setReactDistance(5).setAIListener(new DummyAI()));
|
dummy.add(new CAI().setReactDistance(5).setAIListener(new DummyAI()));
|
||||||
|
|
||||||
AppUtil.engine.addEntity(dummy);
|
AppUtil.engine.addEntity(dummy);
|
||||||
dummy.getComponent(CCombat.class).inputs.put(Direction.UP, true);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private CRenderedObject createPlayerRenderedObject() {
|
private CRenderedObject createPlayerRenderedObject() {
|
||||||
|
@ -5,6 +5,7 @@ import com.badlogic.gdx.graphics.g2d.Sprite;
|
|||||||
import com.badlogic.gdx.math.Vector2;
|
import com.badlogic.gdx.math.Vector2;
|
||||||
import com.saltosion.gladiator.components.CPhysics;
|
import com.saltosion.gladiator.components.CPhysics;
|
||||||
import com.saltosion.gladiator.components.CRenderedObject;
|
import com.saltosion.gladiator.components.CRenderedObject;
|
||||||
|
import com.saltosion.gladiator.systems.RenderingSystem;
|
||||||
import com.saltosion.gladiator.util.AppUtil;
|
import com.saltosion.gladiator.util.AppUtil;
|
||||||
import com.saltosion.gladiator.util.Global;
|
import com.saltosion.gladiator.util.Global;
|
||||||
import com.saltosion.gladiator.util.Name;
|
import com.saltosion.gladiator.util.Name;
|
||||||
@ -25,31 +26,53 @@ public class TestLevel implements Level {
|
|||||||
audienceRO.playAnimation("Default-Animation");
|
audienceRO.playAnimation("Default-Animation");
|
||||||
audience.add(audienceRO);
|
audience.add(audienceRO);
|
||||||
CPhysics audiencePO = new CPhysics().setMovable(false).setGravityApplied(false)
|
CPhysics audiencePO = new CPhysics().setMovable(false).setGravityApplied(false)
|
||||||
.setProcessCollisions(false).setGhost(true).setPosition(0, 10).setZParallax(9);
|
.setProcessCollisions(false).setGhost(true).setPosition(0, 10).setZParallax(9)
|
||||||
|
.setSize(audienceSprite0.getRegionWidth() * Global.SPRITE_SCALE,
|
||||||
|
audienceSprite0.getRegionHeight() * Global.SPRITE_SCALE);
|
||||||
audience.add(audiencePO);
|
audience.add(audiencePO);
|
||||||
AppUtil.engine.addEntity(audience);
|
AppUtil.engine.addEntity(audience);
|
||||||
|
|
||||||
// Wall
|
// Wall
|
||||||
Entity wall = new Entity();
|
Entity wall = new Entity();
|
||||||
CRenderedObject wallRO = new CRenderedObject(SpriteLoader.loadSprite(Name.WALLIMG));
|
Sprite wallSprite = SpriteLoader.loadSprite(Name.WALLIMG);
|
||||||
|
CRenderedObject wallRO = new CRenderedObject(wallSprite);
|
||||||
wall.add(wallRO);
|
wall.add(wallRO);
|
||||||
CPhysics wallPO = new CPhysics().setMovable(false).setGravityApplied(false)
|
CPhysics wallPO = new CPhysics().setMovable(false).setGravityApplied(false)
|
||||||
.setProcessCollisions(false).setGhost(true).setPosition(0, 2).setZParallax(1.5f);
|
.setProcessCollisions(false).setGhost(true).setPosition(0, 2).setZParallax(1.5f)
|
||||||
|
.setSize(wallSprite.getRegionWidth() * Global.SPRITE_SCALE,
|
||||||
|
wallSprite.getRegionHeight() * Global.SPRITE_SCALE);
|
||||||
wall.add(wallPO);
|
wall.add(wallPO);
|
||||||
AppUtil.engine.addEntity(wall);
|
AppUtil.engine.addEntity(wall);
|
||||||
|
|
||||||
// Ground
|
// Ground
|
||||||
Entity ground = new Entity();
|
Entity ground = new Entity();
|
||||||
Sprite groundSprite = SpriteLoader.loadSprite(Name.GROUNDIMG);
|
Sprite groundSprite = SpriteLoader.loadSprite(Name.GROUNDIMG);
|
||||||
CRenderedObject renderedObject = new CRenderedObject(groundSprite);
|
CRenderedObject groundRO = new CRenderedObject(groundSprite);
|
||||||
ground.add(renderedObject);
|
ground.add(groundRO);
|
||||||
CPhysics physics = new CPhysics().setMovable(false).setGravityApplied(false).setProcessCollisions(false)
|
CPhysics groundPO = new CPhysics().setMovable(false).setGravityApplied(false).setProcessCollisions(false)
|
||||||
.setSize(groundSprite.getRegionWidth() * Global.SPRITE_SCALE,
|
.setSize(groundSprite.getRegionWidth() * Global.SPRITE_SCALE,
|
||||||
groundSprite.getRegionHeight() * Global.SPRITE_SCALE);
|
groundSprite.getRegionHeight() * Global.SPRITE_SCALE);
|
||||||
physics.getPosition().set(new Vector2(0, -4));
|
groundPO.getPosition().set(new Vector2(0, -4));
|
||||||
ground.add(physics);
|
ground.add(groundPO);
|
||||||
AppUtil.engine.addEntity(ground);
|
AppUtil.engine.addEntity(ground);
|
||||||
|
|
||||||
|
// Level borders
|
||||||
|
float xClamp = groundPO.getSize().x / 2f;
|
||||||
|
AppUtil.engine.getSystem(RenderingSystem.class).setXMin(-xClamp).setXMax(xClamp);
|
||||||
|
|
||||||
|
Entity borderLeft = new Entity();
|
||||||
|
CPhysics borderLeftPhysics = new CPhysics().setMovable(false).setGravityApplied(false)
|
||||||
|
.setProcessCollisions(false).setSize(0.1f, 20);
|
||||||
|
borderLeftPhysics.setPosition(-xClamp - borderLeftPhysics.getSize().x, 0);
|
||||||
|
borderLeft.add(borderLeftPhysics);
|
||||||
|
AppUtil.engine.addEntity(borderLeft);
|
||||||
|
Entity borderRight = new Entity();
|
||||||
|
CPhysics borderRightPhysics = new CPhysics().setMovable(false).setGravityApplied(false)
|
||||||
|
.setProcessCollisions(false).setSize(0.1f, 20);
|
||||||
|
borderRightPhysics.setPosition(xClamp + borderRightPhysics.getSize().x, 0);
|
||||||
|
borderRight.add(borderRightPhysics);
|
||||||
|
AppUtil.engine.addEntity(borderRight);
|
||||||
|
|
||||||
// Generate entities
|
// Generate entities
|
||||||
AppUtil.entityFactory.createPlayer(new Vector2(0, 5));
|
AppUtil.entityFactory.createPlayer(new Vector2(0, 5));
|
||||||
AppUtil.entityFactory.createDummy(new Vector2(-6, 5));
|
AppUtil.entityFactory.createDummy(new Vector2(-6, 5));
|
||||||
|
@ -57,6 +57,8 @@ public class RenderingSystem extends EntitySystem {
|
|||||||
|
|
||||||
private List<TextObject> drawableText;
|
private List<TextObject> drawableText;
|
||||||
|
|
||||||
|
private float xMin = -15, xMax = 15;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addedToEngine(Engine engine) {
|
public void addedToEngine(Engine engine) {
|
||||||
updateEntities(engine);
|
updateEntities(engine);
|
||||||
@ -211,8 +213,8 @@ public class RenderingSystem extends EntitySystem {
|
|||||||
int spriteHeight = currSprite.getRegionHeight();
|
int spriteHeight = currSprite.getRegionHeight();
|
||||||
int spriteWidth = currSprite.getRegionWidth();
|
int spriteWidth = currSprite.getRegionWidth();
|
||||||
|
|
||||||
currSprite.setPosition(((physics.getPosition().x - spriteWidth / 2) - playerPhys.getPosition().x / physics.getZParallax() + camera.viewportWidth / 2),
|
currSprite.setPosition(((physics.getPosition().x - spriteWidth / 2) + getCameraOffset(playerPhys, physics).x),
|
||||||
(physics.getPosition().y - spriteHeight / 2) - playerPhys.getPosition().y / physics.getZParallax() + camera.viewportHeight / 3);
|
(physics.getPosition().y - spriteHeight / 2) + getCameraOffset(playerPhys, physics).y);
|
||||||
currSprite.draw(batch);
|
currSprite.draw(batch);
|
||||||
|
|
||||||
float nextFrame = renderedObject.getCurrentFrame(channel) + deltaTime * currSequence.getPlayspeed();
|
float nextFrame = renderedObject.getCurrentFrame(channel) + deltaTime * currSequence.getPlayspeed();
|
||||||
@ -256,10 +258,10 @@ public class RenderingSystem extends EntitySystem {
|
|||||||
debugRenderer.begin(ShapeType.Line);
|
debugRenderer.begin(ShapeType.Line);
|
||||||
for (int i = 0; i < entities.size(); i++) {
|
for (int i = 0; i < entities.size(); i++) {
|
||||||
CPhysics physics = pm.get(entities.get(i));
|
CPhysics physics = pm.get(entities.get(i));
|
||||||
float x0 = physics.getPosition().x - physics.getSize().x / 2 - playerPhys.getPosition().x / physics.getZParallax() + camera.viewportWidth / 2;
|
float x0 = physics.getPosition().x - physics.getSize().x / 2 + getCameraOffset(playerPhys, physics).x;
|
||||||
float x1 = physics.getPosition().x + physics.getSize().x / 2 - playerPhys.getPosition().x / physics.getZParallax() + camera.viewportWidth / 2;
|
float x1 = physics.getPosition().x + physics.getSize().x / 2 + getCameraOffset(playerPhys, physics).x;
|
||||||
float y0 = physics.getPosition().y - physics.getSize().y / 2 - playerPhys.getPosition().y / physics.getZParallax() + camera.viewportHeight / 3;
|
float y0 = physics.getPosition().y - physics.getSize().y / 2 + getCameraOffset(playerPhys, physics).y;
|
||||||
float y1 = physics.getPosition().y + physics.getSize().y / 2 - playerPhys.getPosition().y / physics.getZParallax() + camera.viewportHeight / 3;
|
float y1 = physics.getPosition().y + physics.getSize().y / 2 + getCameraOffset(playerPhys, physics).y;
|
||||||
|
|
||||||
debugRenderer.setColor(debugColor);
|
debugRenderer.setColor(debugColor);
|
||||||
debugRenderer.line(x0, y0, x1, y0);
|
debugRenderer.line(x0, y0, x1, y0);
|
||||||
@ -292,10 +294,8 @@ public class RenderingSystem extends EntitySystem {
|
|||||||
drawableText.add(new TextObject(text, position));
|
drawableText.add(new TextObject(text, position));
|
||||||
}
|
}
|
||||||
|
|
||||||
public
|
public void updateEntities(Engine engine) {
|
||||||
void updateEntities(Engine engine) {
|
entities = engine.getEntitiesFor(Family.getFor(CRenderedObject.class, CPhysics.class));
|
||||||
entities = engine.getEntitiesFor(Family.getFor(CRenderedObject.class, CPhysics.class
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getDebug() {
|
public boolean getDebug() {
|
||||||
@ -310,6 +310,31 @@ public class RenderingSystem extends EntitySystem {
|
|||||||
return new Vector2(this.camera.position.x, this.camera.position.y);
|
return new Vector2(this.camera.position.x, this.camera.position.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Vector2 getCameraOffset(CPhysics playerPhys, CPhysics currPhys) {
|
||||||
|
Vector2 offset = new Vector2(Math.max(xMin + camera.viewportWidth / 2, Math.min(xMax - camera.viewportWidth / 2,
|
||||||
|
-playerPhys.getPosition().x)) / currPhys.getZParallax() + camera.viewportWidth / 2,
|
||||||
|
-playerPhys.getPosition().y / currPhys.getZParallax() + camera.viewportHeight / 3);
|
||||||
|
return offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getXMin() {
|
||||||
|
return xMin;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RenderingSystem setXMin(float xMin) {
|
||||||
|
this.xMin = xMin;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getXMax() {
|
||||||
|
return xMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
public RenderingSystem setXMax(float xMax) {
|
||||||
|
this.xMax = xMax;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public void dispose() {
|
public void dispose() {
|
||||||
batch.dispose();
|
batch.dispose();
|
||||||
debugRenderer.dispose();
|
debugRenderer.dispose();
|
||||||
|
Loading…
Reference in New Issue
Block a user