Merge branch 'combat_graphics_update'

This commit is contained in:
Jeasonfire 2015-05-17 18:49:11 +03:00
commit b882b363ec
5 changed files with 37 additions and 8 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

View File

@ -80,6 +80,10 @@ public class CCombat extends Component {
return this.maxHealth; return this.maxHealth;
} }
public int getHealth() {
return this.health;
}
public int getDamage() { public int getDamage() {
float minDmg = damage * 0.9f; float minDmg = damage * 0.9f;
float maxDmg = damage * 1.1f; float maxDmg = damage * 1.1f;

View File

@ -28,6 +28,8 @@ import com.saltosion.gladiator.gui.nodes.TextNode;
import com.saltosion.gladiator.gui.properties.TextProperty; import com.saltosion.gladiator.gui.properties.TextProperty;
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.Log;
import com.saltosion.gladiator.util.Name;
import com.saltosion.gladiator.util.SpriteLoader; import com.saltosion.gladiator.util.SpriteLoader;
import com.saltosion.gladiator.util.SpriteSequence; import com.saltosion.gladiator.util.SpriteSequence;
import java.util.ArrayList; import java.util.ArrayList;
@ -60,6 +62,7 @@ public class RenderingSystem extends EntitySystem {
private List<TextObject> drawableText; private List<TextObject> drawableText;
private Sprite[] healthbar;
private float xMin = -15, xMax = 15; private float xMin = -15, xMax = 15;
@Override @Override
@ -81,6 +84,11 @@ public class RenderingSystem extends EntitySystem {
fontCamera.setToOrtho(false, Global.FONT_SCALE, Global.FONT_SCALE); fontCamera.setToOrtho(false, Global.FONT_SCALE, Global.FONT_SCALE);
drawableText = new ArrayList<TextObject>(); drawableText = new ArrayList<TextObject>();
healthbar = new Sprite[3];
healthbar[0] = SpriteLoader.loadSprite(Name.HEALTHBARIMG, 0, 0, 32, 8);
healthbar[1] = SpriteLoader.loadSprite(Name.HEALTHBARIMG, 0, 1, 32, 8);
healthbar[2] = SpriteLoader.loadSprite(Name.HEALTHBARIMG, 0, 2, 32, 8);
} }
public void setViewport(int width, int height) { public void setViewport(int width, int height) {
@ -90,11 +98,6 @@ public class RenderingSystem extends EntitySystem {
@Override @Override
public void update(float deltaTime) { public void update(float deltaTime) {
if (AppUtil.player != null) {
CPhysics phys = pm.get(AppUtil.player);
//camera.position.set(phys.getPosition().x, phys.getPosition().y, 0);
//fontCamera.position.set(camera.position.x * Global.FONT_SCALE, camera.position.y * Global.FONT_SCALE, 0);
}
camera.update(); camera.update();
fontCamera.update(); fontCamera.update();
@ -190,6 +193,7 @@ public class RenderingSystem extends EntitySystem {
ro.playAnimation("legs", "Legs-Run-" + dirMove); ro.playAnimation("legs", "Legs-Run-" + dirMove);
} else if (combat) { } else if (combat) {
ro.playAnimation("torso", "Torso-Combat-" + dirSwing); ro.playAnimation("torso", "Torso-Combat-" + dirSwing);
ro.playAnimation("legs", "Legs-Idle-" + dirMove);
} else if (moving) { } else if (moving) {
ro.playAnimation("torso", "Torso-Run-" + dirMove); ro.playAnimation("torso", "Torso-Run-" + dirMove);
ro.playAnimation("legs", "Legs-Run-" + dirMove); ro.playAnimation("legs", "Legs-Run-" + dirMove);
@ -207,17 +211,17 @@ public class RenderingSystem extends EntitySystem {
batch.setProjectionMatrix(camera.combined); batch.setProjectionMatrix(camera.combined);
batch.begin(); batch.begin();
for (int i = 0; i < entities.size(); i++) { for (int i = 0; i < entities.size(); i++) {
CPhysics physics = pm.get(entities.get(i));
CRenderedObject renderedObject = rom.get(entities.get(i)); CRenderedObject renderedObject = rom.get(entities.get(i));
if (renderedObject == null) { if (renderedObject == null) {
continue; continue;
} }
// Draw entity
for (String channel : renderedObject.getChannels()) { for (String channel : renderedObject.getChannels()) {
SpriteSequence currSequence = renderedObject.getSequence(renderedObject.getCurrentSequence(channel)); SpriteSequence currSequence = renderedObject.getSequence(renderedObject.getCurrentSequence(channel));
int currFrame = (int) Math.floor(renderedObject.getCurrentFrame(channel)); int currFrame = (int) Math.floor(renderedObject.getCurrentFrame(channel));
Sprite currSprite = currSequence.getSprite(currFrame); Sprite currSprite = currSequence.getSprite(currFrame);
CPhysics physics = pm.get(entities.get(i));
int spriteHeight = currSprite.getRegionHeight(); int spriteHeight = currSprite.getRegionHeight();
int spriteWidth = currSprite.getRegionWidth(); int spriteWidth = currSprite.getRegionWidth();
@ -228,6 +232,25 @@ public class RenderingSystem extends EntitySystem {
float nextFrame = renderedObject.getCurrentFrame(channel) + deltaTime * currSequence.getPlayspeed(); float nextFrame = renderedObject.getCurrentFrame(channel) + deltaTime * currSequence.getPlayspeed();
renderedObject.setCurrentFrame(channel, nextFrame % currSequence.frameCount()); renderedObject.setCurrentFrame(channel, nextFrame % currSequence.frameCount());
} }
// Draw healthbars
CCombat combat = cm.get(entities.get(i));
if (combat != null) {
float spriteWidth = healthbar[0].getWidth();
float spriteHeight = healthbar[0].getHeight();
float hp = (float) combat.getHealth() / (float) combat.getMaxHealth();
healthbar[0].setPosition(((physics.getPosition().x - spriteWidth / 2) + getCameraOffset(playerPhys, physics).x),
(physics.getPosition().y - spriteHeight / 2 + 2.5f) + getCameraOffset(playerPhys, physics).y);
healthbar[0].draw(batch);
healthbar[1].setPosition(((physics.getPosition().x - spriteWidth / 2) + getCameraOffset(playerPhys, physics).x),
(physics.getPosition().y - spriteHeight / 2 + 2.5f) + getCameraOffset(playerPhys, physics).y);
healthbar[1].setSize(spriteWidth * hp, spriteHeight);
healthbar[1].draw(batch);
healthbar[2].setPosition(((physics.getPosition().x - spriteWidth / 2) + getCameraOffset(playerPhys, physics).x),
(physics.getPosition().y - spriteHeight / 2 + 2.5f) + getCameraOffset(playerPhys, physics).y);
healthbar[2].draw(batch);
}
} }
batch.end(); batch.end();
} }

View File

@ -11,6 +11,7 @@ public class Name {
public static final String WALLIMG = "WALLIMG"; public static final String WALLIMG = "WALLIMG";
public static final String SWINGHITBOXIMG = "SWINGHITBOXIMG"; public static final String SWINGHITBOXIMG = "SWINGHITBOXIMG";
public static final String AUDIENCEIMG = "AUDIENCEIMG"; public static final String AUDIENCEIMG = "AUDIENCEIMG";
public static final String HEALTHBARIMG = "HEALTHBARIMG";
public static final String BUTTON_HUGE = "BUTTON_HUGE"; public static final String BUTTON_HUGE = "BUTTON_HUGE";
public static final String BUTTON_HUGE_HOVER = "BUTTON_HUGE_HOVER"; public static final String BUTTON_HUGE_HOVER = "BUTTON_HUGE_HOVER";

View File

@ -17,6 +17,7 @@ public class SpriteLoader {
loadTexture(Name.GROUNDIMG, "sprites/ground.png"); loadTexture(Name.GROUNDIMG, "sprites/ground.png");
loadTexture(Name.WALLIMG, "sprites/wall.png"); loadTexture(Name.WALLIMG, "sprites/wall.png");
loadTexture(Name.AUDIENCEIMG, "sprites/audience.png"); loadTexture(Name.AUDIENCEIMG, "sprites/audience.png");
loadTexture(Name.HEALTHBARIMG, "sprites/player/healthbar.png");
loadTexture(Name.BUTTON_HUGE, "sprites/buttons/button_huge.png"); loadTexture(Name.BUTTON_HUGE, "sprites/buttons/button_huge.png");
loadTexture(Name.BUTTON_HUGE_HOVER, "sprites/buttons/button_huge_hover.png"); loadTexture(Name.BUTTON_HUGE_HOVER, "sprites/buttons/button_huge_hover.png");