Android Open Source - fun-gl Simple Game Stage






From Project

Back to project page fun-gl.

License

The source code is released under:

Apache License

If you think the Android project fun-gl listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.jcxavier.android.opengl.game;
//w ww. ja  v a2s  .  co m
import java.util.ArrayList;
import java.util.List;

import android.graphics.Point;
import android.view.MotionEvent;
import com.jcxavier.android.opengl.game.camera.Camera;
import com.jcxavier.android.opengl.game.manager.GameManager;
import com.jcxavier.android.opengl.game.manager.ScreenManager;
import com.jcxavier.android.opengl.game.manager.input.InputManager;
import com.jcxavier.android.opengl.game.object.GameObject;
import com.jcxavier.android.opengl.game.type.Updateable;
import com.jcxavier.android.opengl.math.Matrix4;

/**
 * Created on 11/03/2014.
 *
 * @author Joo Xavier <jcxavier@jcxavier.com>
 */
public class SimpleGameStage implements GameStage, GameManager {

    private final List<Updateable> mUpdateableObjects;

    private final InputManager mInputManager;
    private final ScreenManager mScreenManager;

    public SimpleGameStage(final Camera camera) {
        mUpdateableObjects = new ArrayList<>();

        mInputManager = new InputManager();
        mScreenManager = new ScreenManager(camera);
    }

    @Override
    public void onLoad() {
        // no additional setup required here
    }

    @Override
    public void onUnload() {
        for (Updateable object : mUpdateableObjects) {
            object.clean();
        }

        mUpdateableObjects.clear();
    }

    @Override
    public void onLayout(final Point screenSize) {
        mScreenManager.onLayout(screenSize);
    }

    @Override
    public void onUpdate(final double dt) {
        Matrix4 projectionMatrix = mScreenManager.getCamera().getProjectionMatrix();

        mInputManager.onUpdate();

        for (int i = 0, len = mUpdateableObjects.size(); i < len; i++) {
            mUpdateableObjects.get(i).update(projectionMatrix);
        }
    }

    @Override
    public final void onDraw() {
        for (int i = 0, len = mUpdateableObjects.size(); i < len; i++) {
            Updateable object = mUpdateableObjects.get(i);

            if (object.isVisible()) {
                object.draw();
            }
        }
    }

    @Override
    public boolean onTouchEvent(final MotionEvent event) {
        mInputManager.queueEvent(event);
        // event was consumed by this stage
        return true;
    }

    @Override
    public final InputManager getInputManager() {
        return mInputManager;
    }

    @Override
    public final ScreenManager getScreenManager() {
        return mScreenManager;
    }

    protected final void addGameObjects(final GameObject... gameObjects) {
        for (GameObject gameObject : gameObjects) {
            addGameObject(gameObject);
        }
    }

    protected final void addGameObject(final GameObject gameObject) {
        gameObject.setGameManager(this);
        mUpdateableObjects.add(gameObject);
    }

    protected final void removeGameObject(final GameObject gameObject) {
        mUpdateableObjects.remove(gameObject);
        gameObject.setGameManager(null);
        gameObject.clean();
    }
}




Java Source Code List

com.jcxavier.android.opengl.engine.BitmapConfigHelper.java
com.jcxavier.android.opengl.engine.EngineActivity.java
com.jcxavier.android.opengl.engine.EngineRenderer.java
com.jcxavier.android.opengl.engine.EngineView.java
com.jcxavier.android.opengl.engine.RendererOptions.java
com.jcxavier.android.opengl.engine.cache.GLState.java
com.jcxavier.android.opengl.engine.gdx.GdxEglConfigChooser.java
com.jcxavier.android.opengl.engine.shader.ColorShader.java
com.jcxavier.android.opengl.engine.shader.ShaderManager.java
com.jcxavier.android.opengl.engine.shader.Shader.java
com.jcxavier.android.opengl.engine.shader.TextureShader.java
com.jcxavier.android.opengl.engine.texture.TextureFilteringMode.java
com.jcxavier.android.opengl.engine.texture.TextureManager.java
com.jcxavier.android.opengl.engine.texture.TextureWrap.java
com.jcxavier.android.opengl.engine.texture.Texture.java
com.jcxavier.android.opengl.engine.type.RotationMode.java
com.jcxavier.android.opengl.file.FileManager.java
com.jcxavier.android.opengl.game.GameStage.java
com.jcxavier.android.opengl.game.SimpleGameStage.java
com.jcxavier.android.opengl.game.camera.Camera.java
com.jcxavier.android.opengl.game.camera.DefaultCamera.java
com.jcxavier.android.opengl.game.camera.OrthographicCamera.java
com.jcxavier.android.opengl.game.manager.GameManager.java
com.jcxavier.android.opengl.game.manager.ScreenManager.java
com.jcxavier.android.opengl.game.manager.input.InputHandler.java
com.jcxavier.android.opengl.game.manager.input.InputManager.java
com.jcxavier.android.opengl.game.object.DrawableObject.java
com.jcxavier.android.opengl.game.object.GameObject.java
com.jcxavier.android.opengl.game.object.Sprite.java
com.jcxavier.android.opengl.game.type.Resizeable.java
com.jcxavier.android.opengl.game.type.Touchable.java
com.jcxavier.android.opengl.game.type.Transformable.java
com.jcxavier.android.opengl.game.type.Updateable.java
com.jcxavier.android.opengl.math.IVector.java
com.jcxavier.android.opengl.math.Matrix4.java
com.jcxavier.android.opengl.math.Vector2.java
com.jcxavier.android.opengl.math.Vector3.java
com.jcxavier.android.opengl.math.Vector4.java
com.jcxavier.android.opengl.sample.GameActivity.java
com.jcxavier.android.opengl.sample.TestStage.java
com.jcxavier.android.opengl.util.BitmapUtils.java
com.jcxavier.android.opengl.util.Constants.java
com.jcxavier.android.opengl.util.ReflectionUtils.java
com.jcxavier.android.opengl.util.WeakList.java
com.sample.clean.TestActivity.java
com.sample.clean.TestStage.java