Android Open Source - consort-android Game Loop






From Project

Back to project page consort-android.

License

The source code is released under:

GNU General Public License

If you think the Android project consort-android 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.amgems.consort.consort;
//w w w .  ja  v  a2  s.co  m
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.View;

import com.amgems.consort.model.GameState;

public class GameLoop extends Thread implements View.OnTouchListener {

    private volatile boolean mIsRunning;

    private final SurfaceHolder mHolder;
    private final Renderer mRenderer;
    private GameState mGameState;

    private final Object mGameStateMonitor = new Object();

    public GameLoop(SurfaceHolder holder, Renderer renderer) {
        mIsRunning = false;

        mHolder = holder;
        mRenderer = renderer;
    }

    public void setGameState(GameState game) {
        mGameState = game;
    }

    @Override
    public void run() {
        while (mIsRunning) {
            mRenderer.onDrawFrame(mHolder, mGameState);
        }
    }

    public void setRunning(boolean isRunning) {
        mIsRunning = isRunning;
    }

    @Override
    public boolean onTouch(View view, final MotionEvent motionEvent) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                // There's some horrendous race conditions going on here. If things start crashing I'd
                // look here first. Maybe consider adding points to a BlockingQueue that can be consumed
                // by the main loop.
                switch (motionEvent.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        mGameState.startShiftViewport(motionEvent.getX(), motionEvent.getY());
                        break;
                    case MotionEvent.ACTION_MOVE:
                        mGameState.shiftViewport(motionEvent.getX(), motionEvent.getY());
                        break;
                    case MotionEvent.ACTION_UP:
                        mGameState.endShiftViewport();
                        break;
                    default:
                        break;
                }
            }
        }).start();

        return true;
    }
}




Java Source Code List

com.amgems.consort.consort.ApplicationTest.java
com.amgems.consort.consort.GameLoop.java
com.amgems.consort.consort.GameSessionActivity.java
com.amgems.consort.consort.GameSurfaceView.java
com.amgems.consort.consort.GcmActivity.java
com.amgems.consort.consort.GcmRegistrationReceiver.java
com.amgems.consort.consort.LoginActivity.java
com.amgems.consort.consort.MainMenuActivity.java
com.amgems.consort.consort.NavigationDrawerFragment.java
com.amgems.consort.consort.Renderer.java
com.amgems.consort.consort.SessionsAdapter.java
com.amgems.consort.consort.SessionsFragment.java
com.amgems.consort.model.GameState.java
com.amgems.consort.model.GraphMappings.java
com.amgems.consort.model.Graph.java
com.amgems.consort.model.Node.java
com.amgems.consort.model.User.java
com.amgems.consort.serve.GcmManager.java
com.amgems.consort.serve.QueryService.java
com.amgems.consort.serve.Requestor.java