com.dongbat.invasion.system.HUDRenderSystem.java Source code

Java tutorial

Introduction

Here is the source code for com.dongbat.invasion.system.HUDRenderSystem.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dongbat.invasion.system;

import com.artemis.systems.VoidEntitySystem;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
import com.badlogic.gdx.math.Vector2;
import com.dongbat.invasion.util.Constants;
import com.dongbat.invasion.util.PhysicsCameraUtil;
import com.dongbat.invasion.util.PlayerInputUtil;

/**
 *
 * @author vuong
 */
public class HUDRenderSystem extends VoidEntitySystem {

    private final OrthographicCamera camera;
    private final ShapeRenderer shapeRenderer;

    public HUDRenderSystem() {
        this.camera = PhysicsCameraUtil.getCamera();
        this.shapeRenderer = new ShapeRenderer();
    }

    @Override
    protected void processSystem() {
        camera.update();
        shapeRenderer.setProjectionMatrix(camera.combined);

        // draw ground line
        shapeRenderer.begin(ShapeRenderer.ShapeType.Line);

        shapeRenderer.line(Constants.PHYSICS.GROUND_BEGIN_X, Constants.PHYSICS.GROUND_Y,
                Constants.PHYSICS.GROUND_END_X, Constants.PHYSICS.GROUND_Y);
        shapeRenderer.end();

        drawMin();
        drawMax();
        Vector2 aimVector = PlayerInputUtil.aimVector;
        if (aimVector != null) {
            drawAim(aimVector);
        }
    }

    private void drawMin() {
        shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
        shapeRenderer.circle(0, 0, 0.5f);
        shapeRenderer.end();
    }

    private void drawMax() {
        shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
        shapeRenderer.circle(0, 0, 20);
        shapeRenderer.end();
    }

    private void drawAim(Vector2 aimVector) {
        shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
        shapeRenderer.circle(aimVector.x, aimVector.y, 1);
        shapeRenderer.end();
    }
}