Advertisement
xerpi

GameView.java

Oct 2nd, 2011
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.60 KB | None | 0 0
  1. package com.xerpi.core;
  2.  
  3. import android.content.Context;
  4. import android.graphics.Bitmap;
  5. import android.graphics.BitmapFactory;
  6. import android.graphics.Canvas;
  7. import android.graphics.Color;
  8. import android.graphics.Paint;
  9. import android.view.Display;
  10. import android.view.MotionEvent;
  11. import android.view.SurfaceHolder;
  12. import android.view.SurfaceHolder.Callback;
  13. import android.view.SurfaceView;
  14. import android.view.View;
  15. import android.view.View.OnTouchListener;
  16. import android.view.WindowManager;
  17.  
  18. public class GameView extends SurfaceView implements OnTouchListener {
  19.  
  20.     private GameLoopThread gameLoopThread;
  21.     private SurfaceHolder holder;
  22.     Paint paint = new Paint();
  23.     Display display = ((WindowManager)getContext().getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
  24.     public float screenW = display.getWidth();
  25.     public float screenH = display.getHeight();
  26.     public float centerX = screenW/2;
  27.     public float centerY = screenH/2;
  28.     public Bitmap imgArc = BitmapFactory.decodeResource(this.getResources(),R.drawable.arc);
  29.     public Bitmap imgBall1 = BitmapFactory.decodeResource(this.getResources(),R.drawable.ball1);   
  30.     public static Core core = new Core(screenW,screenH,imgArc);
  31.     Balls balls = new Balls();
  32.    
  33.     public boolean checkCollision(float x, float y, float w, float h, float x2,
  34.             float y2, float w2, float h2) {
  35.         if (x + w >= x2 && x <= x2 + w2 && y + h >= y2 && y <= y2 + h2) {
  36.             return true;
  37.         }
  38.         return false;
  39.     }
  40.    
  41.     public GameView(Context context) {
  42.         super(context);
  43.         gameLoopThread = new GameLoopThread(this);
  44.         holder = getHolder();
  45.         holder.addCallback(new Callback() {
  46.             @Override
  47.             public void surfaceDestroyed(SurfaceHolder holder) {
  48.                 gameLoopThread.setRunning(false);
  49.             }
  50.  
  51.             @Override
  52.             public void surfaceCreated(SurfaceHolder holder) { 
  53.                
  54.                 for (int i =0;i<500;i++)
  55.                 balls.add(0,imgBall1);
  56.                 gameLoopThread.setRunning(true);
  57.                 gameLoopThread.start();
  58.             }
  59.  
  60.             @Override
  61.             public void surfaceChanged(SurfaceHolder holder, int format,
  62.                     int width, int height) {
  63.             }
  64.         });
  65.     }
  66.  
  67.  
  68.    
  69.     public void onDraw(Canvas canvas) {
  70.         // Clear the screen
  71.             canvas.drawColor(Color.BLACK);
  72.             this.setOnTouchListener(this);
  73.         paint.setColor(Color.RED);
  74.         paint.setTextSize(20);
  75.         canvas.drawText("Score: "+core.score, 10, 20, paint);
  76.         core.blit(canvas,paint);
  77.         balls.move();
  78.         balls.blit(canvas,paint);
  79.         paint.reset();
  80.     }
  81.    
  82.     @Override
  83.     public boolean onTouch(View v, MotionEvent event) {
  84.         double ang = -Math.atan2(screenW/2-event.getX(),screenH/2-event.getY());
  85.         core.setAngle((float) Math.toDegrees(ang));
  86.         return true;
  87.     }
  88.  
  89. }
  90.  
  91.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement