gdx-studio

#libgdx#java#desktop

git clone https://git.pyrossh.dev/gdx-studio

An IDE for creating Games using libgdx and Java supported on all platforms Android, iOS, Desktop


test/source/Game.java
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(){
    }
}