Subversion Repositories AndroidProjects

Rev

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

package com.gebauz.libGDXtest;

import java.io.IOException;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.Texture;
import com.gebauz.Bauzoid.app.Consts;
import com.gebauz.Bauzoid.app.Game;
import com.gebauz.Bauzoid.gamestates.BaseGameState;
import com.gebauz.Bauzoid.graphics.Font;
import com.gebauz.Bauzoid.graphics.FontUtil;
import com.gebauz.Bauzoid.graphics.model.Geometry;
import com.gebauz.Bauzoid.graphics.model.Model;
import com.gebauz.Bauzoid.graphics.model.ModelUtil;
import com.gebauz.Bauzoid.graphics.model.SimpleGeometry;
import com.gebauz.Bauzoid.graphics.shader.ShaderProgram;
import com.gebauz.Bauzoid.graphics.shader.ShaderUtil;
//import com.gebauz.Bauzoid.graphics.sprite.AnimatedSprite;
//import com.gebauz.Bauzoid.graphics.sprite.Animation;
import com.gebauz.Bauzoid.graphics.sprite.AtlasSprite;
import com.gebauz.Bauzoid.graphics.sprite.AtlasSpriteInstance;
//import com.gebauz.Bauzoid.graphics.sprite.AnimationFrame;
import com.gebauz.Bauzoid.graphics.sprite.SpriteRegion;
import com.gebauz.Bauzoid.graphics.sprite.Sprite;
import com.gebauz.Bauzoid.math.MathUtil;
import com.gebauz.Bauzoid.math.Matrix4;
import com.gebauz.Bauzoid.math.Vector4;
import com.gebauz.Bauzoid.parser.ScanException;
import com.gebauz.Bauzoid.parser.Tokenizer;


public class TestState extends BaseGameState
{
        private Matrix4 mProjection;
        private Matrix4 mView;
        private Matrix4 mModel;

        private Model mTestModel = null;
        //private Font mFont = null;
       
        private AtlasSprite mSpriteAtlas;
        private AtlasSpriteInstance mSprite2;
        private AtlasSpriteInstance mSprite3;
       
        private float mAngle = 0.0f;

        public TestState(Game game)
        {
                super(game);
                setFading(false, false);
        }
       
        @Override
        public void init()
        {
                try
                {
                        mTestModel = ModelUtil.createModelFromFile(getGame().getGraphics(), Gdx.files.internal("data/conifer.model"));
                        mTestModel.upload();
                }
                catch (IOException e)
                {
                        Gdx.app.log("GBZ", "exception");
                }
               
                //mFont = FontUtil.createFontFromFile(getGraphics(), Gdx.files.internal("data/Emulator12.txt"));
               
                {
                        Texture texture = new Texture(Gdx.files.internal("data/testsprite2.png"));
                       
                        SpriteRegion[] regions =
                        {
                                new SpriteRegion(texture, 0, 20, 62, 62),
                                new SpriteRegion(texture, 3, 88, 80, 82)
                        };
                       
                        mSpriteAtlas = new AtlasSprite(getGraphics(), texture, regions);
                       
                        mSprite2 = mSpriteAtlas.createSpriteInstance(0);
                        mSprite3 = mSpriteAtlas.createSpriteInstance(1);
                }
        }
       
        @Override
        public void exit()
        {
        }

        @Override
        public void update(float deltaTime)
        {
                mAngle += 90.0f * (deltaTime);
        }

        @Override
        public void render()
        {
                float ratio = getGame().getGraphics().getAspect();
               
                mModel = Matrix4.createRotationY(mAngle);
                mProjection = Matrix4.createPerspective(45.0f, ratio, 1.0f, 300.0f);
               
                float distance = 15.0f + MathUtil.sin(mAngle) * 10.0f;
               
                mView = Matrix4.createLookAt(0, 5, -distance, 0.0f, 2.0f, 0.0f, 0.0f, 1.0f, 0.0f);             
               
                getGraphics().clear(0.0f, 0.3f, 0.5f, 0.0f);
               
                getRenderStates().model = mModel;
                getRenderStates().view = mView;
                getRenderStates().projection = mProjection;
               
                if (mTestModel != null)
                {
                        mTestModel.render();
                }
               
                getRenderStates().view = Matrix4.createIdentity();
                getRenderStates().projection = Matrix4.createOrtho(0.0f, Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), 0.0f, 0.0f, 1.0f);
                               

                //mFont.drawText("some test this is\nTEST EMULATOR PINGK\nJUST A TEST!", 20, 20, new Vector4(1.0f, 0.4f, 1.0f, 1.0f), 2.0f);
               
                mSprite2.x = 200.0f;
                mSprite2.y = 100.0f;
                mSprite2.render();
               
                mSprite3.x = 200.0f;
                mSprite3.y = 350.0f;
                mSprite3.angle = mAngle;
                mSprite3.render();
               
        int error = Gdx.gl.glGetError();
        if (error != GL20.GL_NO_ERROR)
        {
                Gdx.app.log(Consts.LOG_TAG, "gl error: " + error);
        }
        }
}