package com.spaceshooter;
import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
<<<<<<< HEAD
import com.badlogic.gdx.math.Rectangle;
import com.badlogic.gdx.math.Vector2;
=======
>>>>>>> 0d81a170628515199babf17e63fd265a564eaea1
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Screen;
public class LevelScreen implements Screen {
private OrthographicCamera camera;
private SpriteBatch batch;
<<<<<<< HEAD
private Rectangle viewport;
=======
>>>>>>> 0d81a170628515199babf17e63fd265a564eaea1
private Texture bgtexture;
private Sprite bgsprite;
private Texture bgtexture2;
private Sprite bgsprite2;
private float scrollTimer = 0.0f;
private BulletManager bulletManager;
private EnemyManager enemyManager;
private PlayerManager playerManager;
private ScoreHandler scoreHandler;
private PickupManager pickupManager;
<<<<<<< HEAD
private static final int VIRTUAL_WIDTH = 480;
private static final int VIRTUAL_HEIGHT = 800;
private static final float ASPECT_RATIO = (float)VIRTUAL_WIDTH/(float)VIRTUAL_HEIGHT;
=======
>>>>>>> 0d81a170628515199babf17e63fd265a564eaea1
//Main level screen.
public LevelScreen() {
Gdx.input.setCursorCatched(true);
Gdx.input.setCatchBackKey(false);
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
<<<<<<< HEAD
camera = new OrthographicCamera(VIRTUAL_WIDTH, VIRTUAL_HEIGHT);
=======
camera = new OrthographicCamera(w, h);
>>>>>>> 0d81a170628515199babf17e63fd265a564eaea1
batch = new SpriteBatch();
// Load the stars with alpha channel
bgtexture = ResourceManager.getAssetManager().get(
ResourceManager.PrimaryBG1, Texture.class);
bgtexture.setWrap(Texture.TextureWrap.Repeat,
Texture.TextureWrap.Repeat);
bgtexture2 = ResourceManager.getAssetManager().get(
ResourceManager.ParallaxBG, Texture.class);
bgtexture2.setWrap(Texture.TextureWrap.Repeat,
Texture.TextureWrap.Repeat);
// first scroll
bgsprite = new Sprite(bgtexture);
bgsprite.setPosition(SpaceShooter.getLeftBound(), SpaceShooter.getBottomBound());
// second scroll to make parallax
bgsprite2 = new Sprite(bgtexture2);
bgsprite2.setPosition(SpaceShooter.getLeftBound() - (bgsprite2.getWidth()/4), SpaceShooter.getBottomBound());
bgsprite2.setColor(bgsprite2.getColor().r, bgsprite2.getColor().g,
bgsprite2.getColor().b, 125);
bulletManager = new BulletManager();
enemyManager = new EnemyManager();
playerManager = new PlayerManager();
scoreHandler = new ScoreHandler();
pickupManager = new PickupManager();
}
<<<<<<< HEAD
@Override
public void resize(int width, int height) {
scoreHandler.saveScore();
// calcualte the viewport.
float aspectRatio = (float)width/(float)height;
float scale = 1f;
Vector2 crop = new Vector2(0f, 0f);
if(aspectRatio > ASPECT_RATIO)
{
scale = (float)height/(float)VIRTUAL_HEIGHT;
crop.x = (width - VIRTUAL_WIDTH*scale)/2f;
}
else if(aspectRatio < ASPECT_RATIO)
{
scale = (float)width/(float)VIRTUAL_WIDTH;
crop.y = (height - VIRTUAL_HEIGHT*scale)/2f;
}
else
{
scale = (float)width/(float)VIRTUAL_WIDTH;
}
float w = (float)VIRTUAL_WIDTH*scale;
float h = (float)VIRTUAL_HEIGHT*scale;
viewport = new Rectangle(crop.x, crop.y, w, h);
}
=======
>>>>>>> 0d81a170628515199babf17e63fd265a564eaea1
@Override
public void render(float delta) {
//For desktop version.
if (Gdx.input.isKeyPressed(Keys.ESCAPE)) {
Gdx.app.exit();
}
scrollTimer += (Gdx.graphics.getDeltaTime() / 5);
if (scrollTimer > 2.0f)
scrollTimer = 0.0f;
bgsprite.setV(0.5f * scrollTimer);
bgsprite.setV2(0.5f * scrollTimer - 1);
bgsprite2.setV(2f * scrollTimer);
bgsprite2.setV2(2f * scrollTimer - 1);
enemyManager.update(playerManager.getPlayer(), scoreHandler,
bulletManager);
playerManager.update(enemyManager,bulletManager, pickupManager, scoreHandler);
pickupManager.update();
<<<<<<< HEAD
camera.update();
// We need to set the viewport:
Gdx.gl.glViewport((int) viewport.x, (int) viewport.y,
(int) viewport.width, (int) viewport.height);
=======
>>>>>>> 0d81a170628515199babf17e63fd265a564eaea1
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
batch.begin();
bgsprite.draw(batch);
bgsprite2.draw(batch);
bulletManager.update(enemyManager, batch, scoreHandler,
playerManager.getPlayer(), pickupManager);
enemyManager.draw(batch);
playerManager.drawPlayer(batch);
pickupManager.draw(batch);
bulletManager.draw(batch);
scoreHandler.displayScore(batch,SpaceShooter.getLeftBound(),
SpaceShooter.getTopBound()); // @ Top left of screen
batch.end();
}
@Override
<<<<<<< HEAD
=======
public void resize(int width, int height) {
// TODO Auto-generated method stub
scoreHandler.saveScore();
}
@Override
>>>>>>> 0d81a170628515199babf17e63fd265a564eaea1
public void show() {
ResourceManager.reLoad();
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
camera = new OrthographicCamera(w, h);
batch = new SpriteBatch();
// Load the stars with alpha channel
bgtexture = ResourceManager.getAssetManager().get(
ResourceManager.PrimaryBG1, Texture.class);
bgtexture.setWrap(Texture.TextureWrap.Repeat,
Texture.TextureWrap.Repeat);
bgtexture2 = ResourceManager.getAssetManager().get(
ResourceManager.ParallaxBG, Texture.class);
bgtexture2.setWrap(Texture.TextureWrap.Repeat,
Texture.TextureWrap.Repeat);
// first scroll
bgsprite = new Sprite(bgtexture);
bgsprite.setPosition(SpaceShooter.getLeftBound(), SpaceShooter.getBottomBound());
// Load the stars with alpha channel
// second scroll to make parallax
bgsprite2 = new Sprite(bgtexture2);
//bgsprite2.translate(getLeftBound()*2,getBottomBound());
bgsprite2.setPosition(SpaceShooter.getLeftBound() - (bgsprite2.getWidth()/4), SpaceShooter.getBottomBound());
bgsprite2.setColor(bgsprite2.getColor().r, bgsprite2.getColor().g,
bgsprite2.getColor().b, 125);
bulletManager = new BulletManager();
enemyManager = new EnemyManager();
playerManager = new PlayerManager();
pickupManager = new PickupManager();
}
@Override
public void hide() {
// TODO Auto-generated method stub
}
@Override
public void pause() {
// TODO Auto-generated method stub
scoreHandler.saveScore();
}
@Override
public void resume() {
// TODO Auto-generated method stub
ResourceManager.reLoad();
float w = Gdx.graphics.getWidth();
float h = Gdx.graphics.getHeight();
camera = new OrthographicCamera(w, h);
batch = new SpriteBatch();
// Load the stars with alpha channel
bgtexture = ResourceManager.getAssetManager().get(
ResourceManager.PrimaryBG1, Texture.class);
bgtexture.setWrap(Texture.TextureWrap.Repeat,
Texture.TextureWrap.Repeat);
bgtexture2 = ResourceManager.getAssetManager().get(
ResourceManager.ParallaxBG, Texture.class);
bgtexture2.setWrap(Texture.TextureWrap.Repeat,
Texture.TextureWrap.Repeat);
// first scroll
bgsprite = new Sprite(bgtexture);
bgsprite.setPosition(SpaceShooter.getLeftBound(), SpaceShooter.getBottomBound());
// Load the stars with alpha channel
// second scroll to make parallax
bgsprite2 = new Sprite(bgtexture2);
//bgsprite2.translate(getLeftBound()*2,getBottomBound());
bgsprite2.setPosition(SpaceShooter.getLeftBound() - (bgsprite2.getWidth()/4), SpaceShooter.getBottomBound());
bgsprite2.setColor(bgsprite2.getColor().r, bgsprite2.getColor().g,
bgsprite2.getColor().b, 125);
bulletManager = new BulletManager();
enemyManager = new EnemyManager();
playerManager = new PlayerManager();
pickupManager = new PickupManager();
}
@Override
public void dispose() {
scoreHandler.saveScore();
batch.dispose();
bulletManager.dispose();
enemyManager.clear();
bgtexture.dispose();
bgtexture2.dispose();
pickupManager.dispose();
ResourceManager.getAssetManager().dispose();
}
}