fixed flake entity issue with shard entity lagging behind

This commit is contained in:
Harrison Deng 2017-06-04 13:49:03 -05:00
parent c33947ef5f
commit a9443b1acc
3 changed files with 9 additions and 7 deletions

View File

@ -41,15 +41,17 @@ public class Flake extends Actor implements Poolable, Entity {
@Override @Override
public void act(float delta) { public void act(float delta) {
if (timer > 0) { if (timer > 0) {
timer -= delta; timer -= delta;
} }
moveBy(rot.x*delta*rate, rot.y*delta*rate); moveBy(rot.x*delta*rate, rot.y*delta*rate);
System.out.println("START");
System.out.println(getY());
for (int i = 0; i < shards.length; i++) { for (int i = 0; i < shards.length; i++) {
shards[i].setPosition(getX()+center.x-shards[i].getCenter().x, getY()+center.y-shards[i].getCenter().y); shards[i].setPosition(getX()+center.x-shards[i].getCenter().x, getY()+center.y-shards[i].getCenter().y);
} }
System.out.println(shards[0].getY());
hitbox.setPosition(getX(), getY()); hitbox.setPosition(getX(), getY());
if (getX() > Polyjet.GAME_AREA_WIDTH || getY() > Polyjet.GAME_AREA_HEIGHT || getX() < 0-getWidth() || getY() < 0-getHeight()) { if (getX() > Polyjet.GAME_AREA_WIDTH || getY() > Polyjet.GAME_AREA_HEIGHT || getX() < 0-getWidth() || getY() < 0-getHeight()) {

View File

@ -61,7 +61,6 @@ public class Shard extends Actor implements Entity, Poolable {
public void act(float delta) { public void act(float delta) {
moveBy(angle.x*delta*rate, angle.y*rate*delta); moveBy(angle.x*delta*rate, angle.y*rate*delta);
hitbox.setPosition(getX(), getY()); hitbox.setPosition(getX(), getY());
sprite.setCenter(getX()+center.x, getY()+center.y);
if (getX() > Polyjet.GAME_AREA_WIDTH || getY() > Polyjet.GAME_AREA_HEIGHT || getX() < 0-getWidth() || getY() < 0-getHeight()) { if (getX() > Polyjet.GAME_AREA_WIDTH || getY() > Polyjet.GAME_AREA_HEIGHT || getX() < 0-getWidth() || getY() < 0-getHeight()) {
hp = 0; hp = 0;
@ -72,6 +71,8 @@ public class Shard extends Actor implements Entity, Poolable {
@Override @Override
public void draw(Batch batch, float parentAlpha) { public void draw(Batch batch, float parentAlpha) {
sprite.setCenter(getX()+center.x, getY()+center.y);
sprite.setColor(1f, 0f, (float)hp/(float)maxHp, 1f); sprite.setColor(1f, 0f, (float)hp/(float)maxHp, 1f);
sprite.draw(batch); sprite.draw(batch);
batch.setColor(Color.WHITE); batch.setColor(Color.WHITE);

View File

@ -95,16 +95,15 @@ public class SpawnerWindow extends Window {
stage.addActor(bar); stage.addActor(bar);
break; break;
case FLAKE: case FLAKE:
Flake flake = (Flake) entity;
Shard[] shards = new Shard[(int) mod4.getValue()]; Shard[] shards = new Shard[(int) mod4.getValue()];
for (int i = 0; i < shards.length; i++) { for (int i = 0; i < shards.length; i++) {
shards[i] = (Shard) ec.retrieveEntity(Entities.SHARD); shards[i] = (Shard) ec.retrieveEntity(Entities.SHARD);
shards[i].init(coords.x, coords.y, 360f/shards.length*i, 0f, (int) mod3.getValue()); shards[i].init(coords.x, coords.y, 360f/shards.length*i, 0f, (int) 2);
stage.addActor(shards[i]); stage.addActor(shards[i]);
} }
Flake flake = (Flake) entity;
flake.init(coords.x, coords.y, mod1.getValue(), mod3.getValue(), mod2.getValue()/mod2.getMaxValue()*360f, shards);
stage.addActor(flake); stage.addActor(flake);
flake.init(coords.x, coords.y, mod1.getValue(), mod3.getValue(), mod2.getValue()/mod2.getMaxValue()*360f, shards);
default: default:
break; break;
} }