Subversion Repositories AndroidProjects

Rev

Rev 1723 | Rev 1739 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.gebauz.watergame.gamestates;

import com.badlogic.gdx.Gdx;
import com.gebauz.bauzoid2.game.Engine;
import com.gebauz.bauzoid2.game.Time;
import com.gebauz.bauzoid2.gamestates.BaseGameState;
import com.gebauz.bauzoid2.graphics.geometry.Geometry;
import com.gebauz.bauzoid2.graphics.geometry.SimpleGeometry;
import com.gebauz.bauzoid2.graphics.model.GdxModelUtil;
import com.gebauz.bauzoid2.graphics.model.Model;
import com.gebauz.bauzoid2.math.MathUtil;
import com.gebauz.bauzoid2.math.Vector4;
import com.gebauz.watergame.entities.components.RenderComponent;

/**
 * Created by chris on 08.12.2014.
 */

public class MainGameState extends BaseGameState
{

    // Constants========================================================================================

    // Embedded Types===================================================================================

    // Fields===========================================================================================

    private Model mModel = null;

    private SimpleGeometry mGeom = null;

    // Methods==========================================================================================

    public MainGameState()
    {

    }

    @Override
    public void initAsync()
    {

    }

    @Override
    public void init()
    {
        mModel = GdxModelUtil.readModel("test2.g3dj");

        mGeom = new SimpleGeometry(Geometry.PrimitiveType.TRIANGLES);

        float[] pos = {
                0.0f, 0.0f, 0.0f,
                8.0f, 0.0f, 0.0f,
                0.0f, 5.0f, 0.0f
        };

        float[] normals = {
                0.0f, -1.0f, 0.0f,
                0.0f, -1.0f, 0.0f,
                0.0f, -1.0f, 0.0f
        };
        mGeom.setPositions(pos);
        mGeom.setNormals(normals);
    }

    @Override
    public void exit()
    {

    }

    @Override
    public void update()
    {
        RenderComponent.manager.update();
    }

    @Override
    public void render()
    {
        Engine.graphics.clear(0, 0, 0, 0.0f);

        /*Engine.graphics.renderStates.projection.setOrtho(
                                                     0.0f,
                                                     800-1,
                                                     480-1,
                                                     0.0f,
                                                     0.0f,
                                                     1.0f
        );*/



        Engine.graphics.renderStates.projection.setPerspective(45.0f, 1.33f, 1, 1000);

        float y = -5.0f + MathUtil.sin(Time.getRunTime() * 90.0f) * 10.0f;

        Engine.graphics.renderStates.view.setLookAt(5.0f, y, 5.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f);

        Engine.graphics.renderStates.model.setRotationY(Time.getRunTime() * 45.0f);

        /*Engine.graphics.getPrimitiveShader().activate(new Vector4(0, 1, 0, 1));
        mGeom.render();
        Engine.graphics.getPrimitiveShader().deactivate();*/


        mModel.render();

        Engine.graphics.renderStates.projection.setOrtho(
                                                     0.0f,
                                                     800-1,
                                                     480-1,
                                                     0.0f,
                                                     0.0f,
                                                     1.0f
        );
        Engine.graphics.renderStates.view.identity();

        Engine.graphics.getFont().drawText("Tubaloo", 10, 10);
    }

    // Getters/Setters==================================================================================
}