package source;
import com.badlogic.gdx.scenes.scene2d.Actor;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.actions.Actions;
import scene2d.*;
/** A Basic Game Scene for the Game
* <p>
* The Game Scene consists of all the characters, Huds, controllers for the game. All the logic for
* the game is written in the public void act(float delta) method.
* In this method we ckeck all the
* conditions for the player to win the level and changes scenes accordingly.
* <p>
* @author pyros2097 */
public class Game extends Scene {
Label timer;
float startTime;
float diff;
ImageJson player, enemy;
float playerSpeed = 3f;
boolean touchedDown = false;
String btnName = "";
public Game(){
Camera.addHud("Up");
Camera.addHud("Right");
Camera.addHud("Left");
Camera.addHud("Down");
Camera.addHud("Timer");
Camera.addHud("Label3");
Camera.addHud("Fire");
Camera.setFollowSpeed(1f);
player = (ImageJson) findActor("Player");
enemy = (ImageJson) findActor("Enemy");
Camera.followActorContinuously(player);
timer = (Label)findActor("Timer");
startTime = gameUptime;
}
@Override
public void onTouchDown(Actor actor){
log(actor.getName());
touchedDown = true;
btnName = actor.getName();
}
@Override
public void onClick(Actor actor){
if(actor.getName().equals("Back"))
setScene("Menu");
if(actor.getName().equals("Fire"))
doFire();
}
void doFire(){
ImageJson bullet = new ImageJson("771");
bullet.setPosition(player.getX() + 50, player.getY() + 50);
bullet.setSize(25, 25);
bullet.addAction(Actions.sequence(Actions.moveBy(500, 0, 1f), Actions.removeActor(bullet)));
addActor(bullet);
}
@Override
public void act(float delta){
super.act(delta);
diff = gameUptime - startTime;
timer.setText("Timer: "+diff);
if(diff>=30)
setScene("GameOver");
if(collides(player, enemy))
setScene("GameWin");
//player.clearActions();
switch(btnName){
case "Right": player.addAction(Actions.moveBy(playerSpeed, 0, 0.1f)); break;
case "Up": player.addAction(Actions.moveBy(0, playerSpeed, 0.1f)); break;
case "Left": player.addAction(Actions.moveBy(-playerSpeed, 0, 0.1f)); break;
case "Down": player.addAction(Actions.moveBy(0, -playerSpeed, 0.1f)); break;
}
}
@Override
public void onTouchUp(){
touchedDown = false;
btnName = "";
}
@Override
public void onDragged(){}
@Override
public void onGesture(GestureType type){}
@Override
public void onKeyTyped(char key){
}
@Override
public void onKeyUp(int keycode){
}
@Override
public void onKeyDown(int keycode){
}
@Override
public void onPause(){
}
@Override
public void onResume(){
}
@Override
public void onDispose(){
}
}