Made smoke particles disappear gradually

This commit is contained in:
josua 2019-10-15 13:20:21 +11:00
parent 40a0c6474d
commit 868b3481ee
5 changed files with 12 additions and 19 deletions

View File

@ -26,9 +26,14 @@ public class EntityVertical extends Entity
@Override @Override
public void render(Vec2d pos, Camera camera) { public void render(Vec2d pos, Camera camera) {
this.render(pos, camera, 1);
}
public void render(Vec2d pos, Camera camera, double opacity) {
double light = chunk.getLightLevel(new Vec2i( double light = chunk.getLightLevel(new Vec2i(
MathHelpers.floor(pos.x), MathHelpers.floor(pos.y))); MathHelpers.floor(pos.x), MathHelpers.floor(pos.y)));
GlHelpers.color3(light, light, light); GlHelpers.color4(light, light, light, opacity);
this.render(pos, camera, tex, size); this.render(pos, camera, tex, size);
GlHelpers.color4(1, 1, 1, 1);
} }
} }

View File

@ -5,10 +5,8 @@ import shootergame.display.Camera;
import shootergame.entity.EntityVertical; import shootergame.entity.EntityVertical;
import shootergame.init.Textures; import shootergame.init.Textures;
import shootergame.util.gl.GlHelpers; import shootergame.util.gl.GlHelpers;
import shootergame.util.math.MathHelpers;
import shootergame.util.math.random.RandomHelpers; import shootergame.util.math.random.RandomHelpers;
import shootergame.util.math.vec.Vec2d; import shootergame.util.math.vec.Vec2d;
import shootergame.util.math.vec.Vec2i;
import shootergame.world.chunk.Chunk; import shootergame.world.chunk.Chunk;
import shootergame.world.layer.Layer; import shootergame.world.layer.Layer;
@ -26,8 +24,9 @@ public class ParticleSmoke extends EntityVertical
RandomHelpers.randrange(rand, 1000)/1000.0 - 0.5 + pos.x, RandomHelpers.randrange(rand, 1000)/1000.0 - 0.5 + pos.x,
RandomHelpers.randrange(rand, 1000)/1000.0 - 0.5 + pos.y); RandomHelpers.randrange(rand, 1000)/1000.0 - 0.5 + pos.y);
height_speed = (rand.nextDouble() + 0.5) / 100; height_speed = (rand.nextDouble() + 0.5) / 250;
disappear_speed = (rand.nextDouble() + 0.5) / 250; disappear_speed = (rand.nextDouble() + 0.5) / 1000;
this.opaqueTile = true;
} }
@Override @Override
@ -35,11 +34,7 @@ public class ParticleSmoke extends EntityVertical
if(opacity <= 0) return; if(opacity <= 0) return;
GlHelpers.pushMatrix(); GlHelpers.pushMatrix();
GlHelpers.translate3(0, 0, height); GlHelpers.translate3(0, 0, height);
double light = chunk.getLightLevel(new Vec2i( super.render(pos, camera, opacity);
MathHelpers.floor(pos.x), MathHelpers.floor(pos.y)));
GlHelpers.color4(light, light, light, opacity);
super.render(pos, camera);
GlHelpers.color4(1, 1, 1, 1);
GlHelpers.popMatrix(); GlHelpers.popMatrix();
} }

View File

@ -2,7 +2,6 @@ package shootergame.input.types;
import shootergame.Main; import shootergame.Main;
import shootergame.menu.Menu; import shootergame.menu.Menu;
import shootergame.menu.MenuDeath;
import shootergame.menu.MenuGame; import shootergame.menu.MenuGame;
import shootergame.menu.MenuGamePause; import shootergame.menu.MenuGamePause;

View File

@ -1,12 +1,6 @@
package shootergame.menu; package shootergame.menu;
import java.util.Random;
import shootergame.Main;
import shootergame.entity.player.EntityPlayer;
import shootergame.init.Layers;
import shootergame.input.types.InputDeath; import shootergame.input.types.InputDeath;
import shootergame.input.types.InputGamePause;
import shootergame.text.Text; import shootergame.text.Text;
import shootergame.util.gl.GlHelpers; import shootergame.util.gl.GlHelpers;
import shootergame.util.math.vec.Vec2d; import shootergame.util.math.vec.Vec2d;

View File

@ -4,8 +4,8 @@ import java.util.Random;
import shootergame.Main; import shootergame.Main;
import shootergame.entity.Entity; import shootergame.entity.Entity;
import shootergame.entity.EntityExplosion;
import shootergame.entity.EntityZombie; import shootergame.entity.EntityZombie;
import shootergame.entity.EntityZombieArmored;
import shootergame.init.Tiles; import shootergame.init.Tiles;
import shootergame.time.GameTimer; import shootergame.time.GameTimer;
import shootergame.util.math.MathHelpers; import shootergame.util.math.MathHelpers;
@ -34,7 +34,7 @@ public class LayerGenEarth extends LayerGen
OpenSimplexNoise noisegen_n = new OpenSimplexNoise(new Random(seed + layer.id).nextLong()); OpenSimplexNoise noisegen_n = new OpenSimplexNoise(new Random(seed + layer.id).nextLong());
if(c_pos.x == 0 && c_pos.y == 0) { if(c_pos.x == 0 && c_pos.y == 0) {
chunk.spawnEntity(new EntityZombieArmored(new Vec2d(0, 0))); chunk.spawnEntity(new EntityExplosion(new Vec2d(1, 1), 10, 0));
} }
// Loop over the layer dimensions and create land // Loop over the layer dimensions and create land