Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.********.surfaceviewtest.Screen;
- import android.content.Context;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.graphics.Typeface;
- import android.media.MediaPlayer;
- import android.util.Log;
- import android.view.MotionEvent;
- import android.view.SurfaceHolder;
- import android.view.SurfaceView;
- import android.view.View;
- import com.adanoidz.surfaceviewtest.Audio.Audio;
- public class Screen extends SurfaceView implements Runnable, View.OnTouchListener {
- Thread gameLoop;
- SurfaceHolder holder;
- Canvas canvas;
- volatile boolean running;
- final double fps = 60.0;
- double averageFPS = 0.0;
- double frameLength = 1000 / fps;
- Context context;
- Paint paint = new Paint();
- MediaPlayer mp;
- public Screen(Context context) {
- super(context);
- this.context = context;
- setOnTouchListener(this);
- holder = getHolder();
- paint.setColor(Color.rgb(255, 255, 255));
- paint.setTypeface(Typeface.DEFAULT);
- // Assign context to audio streams.
- Audio.context = this.context;
- }
- public void run() {
- long deltaTime;
- long lastFrame = System.currentTimeMillis();
- int counter = 0;
- long deltaElapsed = 0;
- if (Audio.mediaPlayer == null) {
- Audio.mediaPlayer = Audio.createMusic("media1.ogg");
- Audio.mediaPlayer.start();
- Log.e("Media", "MP is " + Audio.mediaPlayer.toString());
- }
- while (running) {
- deltaTime = System.currentTimeMillis() - lastFrame;
- lastFrame = System.currentTimeMillis();
- if (!holder.getSurface().isValid()) {
- continue;
- }
- update();
- render();
- /*counter++;
- deltaElapsed += deltaTime;
- if(counter >= 60){
- averageFPS = deltaElapsed / frameLength;
- counter = 0;
- deltaElapsed = 0;
- } */
- }
- }
- private void update() {
- }
- private void render() {
- canvas = holder.lockCanvas();
- if (Audio.mediaPaused) {
- canvas.drawRGB(125, 125, 125);
- } else {
- canvas.drawRGB(0, 0, 0);
- }
- //canvas.drawText("Set FPS: " + fps, 10, 10, paint);
- //canvas.drawText("Current FPS: " + averageFPS, 10, 30, paint);
- holder.unlockCanvasAndPost(canvas);
- }
- public void onResume() {
- running = true;
- gameLoop = new Thread(this);
- Audio.onResume();
- gameLoop.start();
- }
- public void onPause() {
- running = false;
- Audio.onPause();
- if (gameLoop != null) {
- try {
- gameLoop.join();
- return;
- } catch (Exception e) {
- // Retry
- }
- }
- }
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- int action = event.getAction();
- switch (action) {
- case MotionEvent.ACTION_DOWN:
- break;
- case MotionEvent.ACTION_UP:
- if (!Audio.mediaPaused) {
- Audio.setMediaPaused(true);
- } else {
- Audio.setMediaPaused(false);
- }
- break;
- }
- return true;
- }
- public void onStop(boolean isFinishing) {
- Audio.onStop(isFinishing);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment