WireChem/core/src/fr/evolving/renderers/LevelRenderer.java

117 lines
4.2 KiB
Java

package fr.evolving.renderers;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
import com.badlogic.gdx.utils.Array;
import fr.evolving.UI.ButtonLevel;
import fr.evolving.assets.AssetLoader;
import fr.evolving.effects.Laser;
import fr.evolving.screens.LevelScreen;
public class LevelRenderer {
private ShapeRenderer shapeRenderer;
private SpriteBatch batcher;
private SpriteBatch batcher2;
int scrollx;
int scrolly;
int dirx;
int diry;
LevelScreen LevelScreen;
Laser Laser;
public TextureRegion Texture_logobig;
public LevelRenderer(LevelScreen LevelScreen) {
this.LevelScreen = LevelScreen;
this.scrollx = 0;
this.scrolly = 0;
this.dirx = 1;
this.diry = 1;
batcher = new SpriteBatch();
batcher2 = new SpriteBatch();
shapeRenderer = new ShapeRenderer();
Laser = new Laser();
AssetLoader.viewport.apply();
}
public void evolve() {
this.scrollx += dirx;
this.scrolly += diry;
if (this.scrollx > 1500)
this.scrolly += diry;
if (this.scrollx > 1024)
this.dirx = -1;
if (this.scrolly > 768)
this.diry = -1;
if (this.scrollx < 0)
this.dirx = 1;
if (this.scrolly < 0)
this.diry = 1;
Laser.i += 0.3f;
if (Laser.i > 10.0f) {
Laser.i = 0;
}
}
public void render(float delta, float runTime) {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
batcher.begin();
batcher.setProjectionMatrix(AssetLoader.Camera.combined);
batcher.setColor(0.25f, 0.25f, 0.25f, 1f);
batcher.draw(AssetLoader.Texture_fond2, 0, 0, this.scrollx / 2,
this.scrolly / 2, AssetLoader.width, AssetLoader.height);
batcher.setColor(0.7f, 0.7f, 0.7f, 1);
batcher.draw(AssetLoader.Texture_fond, 0, 0, this.scrollx,
this.scrolly, AssetLoader.width, AssetLoader.height);
batcher.end();
batcher2.begin();
batcher2.setProjectionMatrix(AssetLoader.Camera.combined);
batcher2.setColor(Color.WHITE);
Texture_logobig = AssetLoader.Skin_level.getRegion("logo3");
batcher2.draw(Texture_logobig, 120, AssetLoader.height-Texture_logobig.getRegionHeight());
batcher2.end();
Gdx.gl.glEnable(GL20.GL_BLEND);
shapeRenderer.begin(ShapeType.Filled);
shapeRenderer.setProjectionMatrix(AssetLoader.Camera.combined);
shapeRenderer.setColor(0.5f, 0.5f, 0.5f, 0.5f);
if (LevelScreen.selected != null) {
shapeRenderer.rect(10, 10, 1190, 165);
if (LevelScreen.selected.level.Cout_orig > 0 && !LevelScreen.worlds.isDebug() || LevelScreen.modify.isChecked() && LevelScreen.worlds.isDebug()) {
shapeRenderer.rect(1210, 10, 250, 140);
shapeRenderer.rect(1210, 160, 250, 140);
}
if (LevelScreen.selected.level.aWorld > 0 && !LevelScreen.worlds.isDebug() || LevelScreen.modify.isChecked() && LevelScreen.worlds.isDebug())
shapeRenderer.rect(1210, 310, 250, 300);
if (LevelScreen.selected.level.Tech > 0 && !LevelScreen.worlds.isDebug() || LevelScreen.modify.isChecked() && LevelScreen.worlds.isDebug())
shapeRenderer.rect(1210, 620, 250, AssetLoader.height - 630);
}
if (!LevelScreen.group_init.isVisible())
shapeRenderer.rect(1470, 10, 440, AssetLoader.height - 20);
shapeRenderer.end();
if (LevelScreen.buttonLevels != null)
for (int i=0;i<LevelScreen.buttonLevels.size;i++)
{
ButtonLevel button1=LevelScreen.buttonLevels.get(i);
for (int[] item : button1.level.Link)
for (ButtonLevel button2 : LevelScreen.buttonLevels)
if ((item.length == 2) && (button2.level.aWorld == item[0]) && (button2.level.aLevel == item[1]))
if (!LevelScreen.worlds.isDebug())
Laser.draw(batcher,button1.level.X,button1.level.Y* AssetLoader.ratio,button2.level.X,button2.level.Y* AssetLoader.ratio,10,0.5f,!button2.level.Locked, button1.getLevelcolor(),button2.getLevelcolor());
else
Laser.drawnotsoold(shapeRenderer,button1.level.X,button1.level.Y* AssetLoader.ratio,button2.level.X,button2.level.Y* AssetLoader.ratio,10,0.5f,!button2.level.Locked, button1.getLevelcolor(),button2.getLevelcolor());
}
}
}