Back to project page DiceInDark.
The source code is released under:
GNU General Public License
If you think the Android project DiceInDark listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* Dice in the dark. D & D app for the blind and seeing impaired, * Copyright (C) <2013r> <Lovisa Irpa Helgadottir> */* www. j a va2 s. c om*/ * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.example.diceindark; import java.util.ArrayList; import java.util.List; import javax.microedition.khronos.opengles.GL10; import android.speech.tts.TextToSpeech; import android.util.Log; import com.example.framework.Game; import com.example.framework.Input.GestureEvent; import com.example.framework.gl.Camera2D; import com.example.framework.gl.SpriteBatcher; import com.example.framework.impl.GLScreen; public class DiceScreen extends GLScreen { static final int DICE_READY =0; static final int DICE_SHAKING=1; static final int DICE_THROW =2; Camera2D guiCam; SpriteBatcher batcher; DiceRender renderer; List<Die> dice; int state; int currentDie =0; float stateTime=0; public DiceScreen( Game game) { super(game); guiCam = new Camera2D(glGraphics, 320, 480); batcher = new SpriteBatcher(glGraphics, 100); this.state= DICE_READY; dice = new ArrayList<Die>(); dice.add(new Die(4)); dice.add(new Die(6)); dice.add(new Die(8)); dice.add(new Die(10)); dice.add(new Die(12)); dice.add(new Die(20)); dice.add(new Die(100)); // TODO Auto-generated constructor stub renderer = new DiceRender(glGraphics, batcher, this); } @Override public void update(float deltaTime) { if(stateTime==0 && state!=DICE_SHAKING) game.getAudio().speakOut(""+dice.get(currentDie).name); stateTime+=deltaTime; float accelX = game.getInput().getAccelX(); float accelY = game.getInput().getAccelY(); switch(state){ case DICE_READY: if(Math.abs(accelX)>10 ||Math.abs(accelY)>10){ dice.get(currentDie).shake(); state=DICE_SHAKING; Assets.playSound(Assets.shakeDie); return; } List<GestureEvent> gestureEvents = game.getInput().getGestureEvents(); int len = gestureEvents.size(); for(int i = 0; i<len; i++){ GestureEvent event = gestureEvents.get(i); if(event.type == GestureEvent.FLING_LEFT){ currentDie--; if(currentDie<0) currentDie=dice.size()-1; game.getAudio().speakOut(dice.get(currentDie).name); } if(event.type == GestureEvent.FLING_RIGHT){ currentDie++; if(currentDie>dice.size()-1) currentDie=0; game.getAudio().speakOut(dice.get(currentDie).name); } if(event.type == GestureEvent.DOUBLE_TAP){ game.setScreen(new MainMenuScreen(game)); return; } if(event.type == GestureEvent.SINGLE_TAP){ game.getAudio().speakOut(dice.get(currentDie).name); if(dice.get(currentDie).hasResult) game.getAudio().speakOut(dice.get(currentDie).name+". Result, "+dice.get(currentDie).result); } } return; case DICE_SHAKING: if(Math.abs(accelX)>10 ||Math.abs(accelY)>10){ dice.get(currentDie).shake(); stateTime=0; } if(stateTime>.5f){ Assets.playSound(Assets.rollDie); state = DICE_THROW; } return; case DICE_THROW: if (stateTime >2f){ dice.get(currentDie).thrown(); game.getAudio().speakOut("Result, "+dice.get(currentDie).result); state = DICE_READY; } return; } } @Override public void present(float deltaTime) { GL10 gl = glGraphics.getGL(); gl.glClear(GL10.GL_COLOR_BUFFER_BIT); gl.glEnable(GL10.GL_TEXTURE_2D); renderer.render(); } @Override public void pause() { // TODO Auto-generated method stub } @Override public void resume() { // TODO Auto-generated method stub } @Override public void dispose() { // TODO Auto-generated method stub } }