mirror of
https://github.com/jwinterm/SpaceShooter.git
synced 2026-10-17 05:51:30 +02:00
Source Code
This commit is contained in:
@@ -0,0 +1,169 @@
|
||||
package com.spaceshooter;
|
||||
|
||||
import com.badlogic.gdx.Input.Keys;
|
||||
import com.badlogic.gdx.audio.Music;
|
||||
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;
|
||||
import com.badlogic.gdx.scenes.scene2d.Actor;
|
||||
import com.badlogic.gdx.scenes.scene2d.ui.*;
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.Screen;
|
||||
|
||||
public class LevelScreen implements Screen {
|
||||
private SpaceShooter game;
|
||||
|
||||
private OrthographicCamera camera;
|
||||
private SpriteBatch batch;
|
||||
private Texture bgtexture;
|
||||
private Sprite bgsprite;
|
||||
|
||||
private Texture bgtexture2;
|
||||
private Sprite bgsprite2;
|
||||
|
||||
private float scrollTimer = 0.0f;
|
||||
|
||||
private Music bgm;
|
||||
|
||||
private BulletManager bulletManager;
|
||||
private EnemyManager enemyManager;
|
||||
private PlayerManager playerManager;
|
||||
private ScoreHandler scoreHandler;
|
||||
private PickupManager pickupManager;
|
||||
|
||||
public LevelScreen(SpaceShooter game) {
|
||||
this.game = game;
|
||||
Gdx.input.setCursorCatched(true);
|
||||
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.getLeftBound());
|
||||
bgsprite2.setColor(bgsprite2.getColor().r, bgsprite2.getColor().g,
|
||||
bgsprite2.getColor().b, 125);
|
||||
|
||||
bulletManager = new BulletManager();
|
||||
enemyManager = new EnemyManager();
|
||||
bgm = Gdx.audio.newMusic(Gdx.files.internal("media/ethervapor.mp3"));
|
||||
bgm.setLooping(true);
|
||||
|
||||
if (!SpaceShooter.isMuted())
|
||||
bgm.play();
|
||||
|
||||
playerManager = new PlayerManager();
|
||||
|
||||
scoreHandler = new ScoreHandler();
|
||||
pickupManager = new PickupManager();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(float delta) {
|
||||
|
||||
if (Gdx.input.isKeyPressed(Keys.BACK) || Gdx.input.isKeyPressed(Keys.ESCAPE)) {
|
||||
game.setScreen(new MenuScreen(game));
|
||||
}
|
||||
|
||||
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();
|
||||
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
|
||||
public void resize(int width, int height) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void hide() {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void pause() {
|
||||
// TODO Auto-generated method stub
|
||||
dispose();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void resume() {
|
||||
// TODO Auto-generated method stub
|
||||
ResourceManager.loadAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose() {
|
||||
scoreHandler.saveScore();
|
||||
batch.dispose();
|
||||
bulletManager.dispose();
|
||||
enemyManager.clear();
|
||||
bgtexture.dispose();
|
||||
bgtexture2.dispose();
|
||||
playerManager.dispose();
|
||||
pickupManager.dispose();
|
||||
ResourceManager.getAssetManager().dispose();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user