Android Open Source - aCARdeRUN Game






From Project

Back to project page aCARdeRUN.

License

The source code is released under:

Apache License

If you think the Android project aCARdeRUN 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

/* Copyright 2012 Dennis Grewe
 *//ww  w  . j a va 2s  .c  o m
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License. */
package de.hdm.mib.dg041.game;


import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

import android.content.Context;
import android.opengl.GLSurfaceView.Renderer;
import android.view.View;

import de.hdm.mib.dg041.graphics.GraphicDevice;
import de.hdm.mib.dg041.input.InputSystem;

/**
 * @author dennis.grewe [dg041@hdm-stuttgart.de]
 * Created on 23.02.2012.
 */
public abstract class Game implements Renderer
{
    // --------------------------------------------------------
    // PROPERTIES
    // --------------------------------------------------------

    /**
     * indicator if the game was already initialized
     */
    private boolean initialized;
    /**
     * defines the timestamp for the last onDrawFrame call
     */
    private long lastTime;
    
    protected GraphicDevice graphicDevice;
    /**
     * context attribute for the game context
     */
    protected static Context context;
    /**
     * own implemented Renderer to draw the loaded meshes
     */
    protected de.hdm.mib.dg041.graphics.Renderer renderer;
    /**
     * reference to the input system of the device
     */
    protected InputSystem inputSystem;
    protected View view;

    /**
     * display width in pixels
     */
    protected int screenWidth = 800;
    /**
     * display height in pixels
     */
    protected int screenHeight = 480;

    // --------------------------------------------------------
    // CONSTRUCTOR
    // --------------------------------------------------------

    public Game(View view)
    {
        this.view = view;
        context = view.getContext();                // get the context using the given view to load objects
        inputSystem = new InputSystem(view);    // create new input system
    }

    // --------------------------------------------------------
    // METHODS
    // --------------------------------------------------------
    
    @Override
    public void onDrawFrame(GL10 gl)
    {
        // get current timestamp and calculate the delta to call update and draw methods periodically
        long currentTime = System.currentTimeMillis();
        float deltaSeconds = (currentTime - lastTime)/1000.0f;

        update(deltaSeconds);
        draw(deltaSeconds);

        lastTime = currentTime;
    }

    @Override
    public void onSurfaceChanged(GL10 gl, int width, int height)
    {
        // resize the graphic device if the device was rotated.
        graphicDevice.resize(width, height);

        // save the new sizes
        screenHeight = height;
        screenWidth = width;

        // display will be redrawn using the new sizes
        resize(width, height);
    }

    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config)
    {
        lastTime = System.currentTimeMillis();

        if(!initialized)
        {
            graphicDevice = new GraphicDevice();
            graphicDevice.onSurfaceCreated(gl);

            // renderer to draw the meshes
            renderer = new de.hdm.mib.dg041.graphics.Renderer(graphicDevice);

            initialize();
            initialized = true;
            // load content of the GameActitvity
            loadContent();
        }
        else
        {
            graphicDevice.onSurfaceCreated(gl);
            // load content of the GameActitvity
            loadContent();
        }
    }

    public abstract void initialize();

    public abstract void loadContent();

    public abstract void update(float deltaseconds);

    public abstract void draw(float deltaseconds);

    public abstract void resize(int width, int height);

    // *** MEDIAPLAYER & SOUNDPOOL METHODS ***//

    public abstract void pause();

    public abstract void resume();

    public abstract void stop();
}




Java Source Code List

de.hdm.mib.dg041.acarderun.aCARdeRunActivity.java
de.hdm.mib.dg041.acarderun.aCARdeRunView.java
de.hdm.mib.dg041.collision.AxisAlignedBoundingBox.java
de.hdm.mib.dg041.collision.Circle.java
de.hdm.mib.dg041.collision.Point.java
de.hdm.mib.dg041.collision.Shape2D.java
de.hdm.mib.dg041.game.GameScreen.java
de.hdm.mib.dg041.game.Game.java
de.hdm.mib.dg041.game.HUD.java
de.hdm.mib.dg041.game.Hero.java
de.hdm.mib.dg041.game.InGameScreen.java
de.hdm.mib.dg041.game.MenuScreen.java
de.hdm.mib.dg041.game.Obstacle.java
de.hdm.mib.dg041.game.Ranking.java
de.hdm.mib.dg041.game.World.java
de.hdm.mib.dg041.game.aCARdeRunGame.java
de.hdm.mib.dg041.graphics.BlendFactor.java
de.hdm.mib.dg041.graphics.Camera.java
de.hdm.mib.dg041.graphics.CompareFunction.java
de.hdm.mib.dg041.graphics.GraphicDevice.java
de.hdm.mib.dg041.graphics.Material.java
de.hdm.mib.dg041.graphics.Mesh.java
de.hdm.mib.dg041.graphics.Renderer.java
de.hdm.mib.dg041.graphics.Side.java
de.hdm.mib.dg041.graphics.SpriteFont.java
de.hdm.mib.dg041.graphics.TextBuffer.java
de.hdm.mib.dg041.graphics.TextureBlendMode.java
de.hdm.mib.dg041.graphics.TextureFilter.java
de.hdm.mib.dg041.graphics.TextureWrapMode.java
de.hdm.mib.dg041.graphics.Texture.java
de.hdm.mib.dg041.graphics.VertexBuffer.java
de.hdm.mib.dg041.graphics.VertexElement.java
de.hdm.mib.dg041.input.InputEvent.java
de.hdm.mib.dg041.input.InputSystem.java
de.hdm.mib.dg041.math.MathHelper.java
de.hdm.mib.dg041.math.Matrix4x4.java
de.hdm.mib.dg041.math.Vector2.java
de.hdm.mib.dg041.math.Vector3.java
de.hdm.mib.dg041.math.Vector4.java