Advertisement
relax8446

1~123

Jan 8th, 2015
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.95 KB | None | 0 0
  1. package ccc.GameDemo1;
  2.  
  3. import ccc.GameDemo1.R;
  4. import android.app.Activity;
  5.  
  6. // 引用會用到的繪圖函式庫
  7. import android.graphics.Canvas;
  8. import android.graphics.Paint;
  9. import android.graphics.Rect;
  10. import android.graphics.drawable.Drawable;
  11. import android.os.Bundle;
  12. import android.os.Handler;
  13. import android.view.SurfaceHolder;
  14. import android.view.SurfaceView;
  15. import android.view.View;
  16. import android.widget.Button;
  17. import android.widget.CheckBox;
  18.  
  19. //引用鍵盤的事件函式庫
  20. import android.view.KeyEvent;
  21.  
  22. public class GameDemo1 extends Activity {
  23.     // 叉叉按鈕
  24.     Button closeButton;
  25.    
  26.     // 可勾選的控制項
  27.     CheckBox actCheckBox;
  28.    
  29.     // 畫布
  30.     SurfaceView SurfaceView01;
  31.    
  32.     // 畫布處理者
  33.     SurfaceHolder surfaceHolder;
  34.    
  35.     // 遊戲執行緒
  36.     Thread gameThread;
  37.    
  38.     // 通知遊戲執行緒結束  
  39.     Boolean isGameThreadOver = true;
  40.    
  41.     // 遊戲物件
  42.     GameObj demoObj;
  43.    
  44.     // 設定每秒最大更新畫格數
  45.     int gameFPS = 25;
  46.    
  47.     // 初始化鍵盤處理者
  48.     KeyHandler keyHandler = new KeyHandler();
  49.  
  50.     @Override
  51.     public void onCreate(Bundle savedInstanceState) {
  52.         super.onCreate(savedInstanceState);
  53.         setContentView(R.layout.main);
  54.  
  55.         // 取得本機圖片後初始化繪圖物件
  56.         Drawable demoDrawable = getResources().getDrawable(R.drawable.demo);
  57.        
  58.         // 初始化遊戲物件
  59.         demoObj = new GameObj(demoDrawable);
  60.  
  61.         // 初始化可勾選的控制項
  62.         actCheckBox = (CheckBox) findViewById(R.id.actCheckBox);
  63.        
  64.         // 可勾選的事件處理
  65.         actCheckBox.setOnClickListener(new View.OnClickListener() {
  66.             public void onClick(View arg0) {
  67.                 // 如果已勾選則設定文字為"移動",反之設為旋轉與縮放
  68.                 if (actCheckBox.isChecked())
  69.                     actCheckBox.setText("move");
  70.                 else
  71.                     actCheckBox.setText("rotate and scale");
  72.             }
  73.         });
  74.  
  75.         // 初始化叉叉
  76.         closeButton = (Button) findViewById(R.id.closeButton);
  77.        
  78.         // 當按下"叉叉"時結束程式
  79.         closeButton.setOnClickListener(new View.OnClickListener() {
  80.             public void onClick(View arg0) {
  81.                 gameExit();
  82.             }
  83.         });
  84.        
  85.         // 初始化畫布
  86.         SurfaceView01 = (SurfaceView) findViewById(R.id.SurfaceView01);
  87.  
  88.         // 取得畫布處理者
  89.         surfaceHolder = SurfaceView01.getHolder();
  90.        
  91.         // 增加回呼方法
  92.         surfaceHolder.addCallback(new SurfaceHolder.Callback() {
  93.  
  94.             public void surfaceDestroyed(SurfaceHolder arg0) {
  95.  
  96.             }
  97.  
  98.             // 當畫布被創造時
  99.             public void surfaceCreated(SurfaceHolder arg0) {
  100.                 // 畫出一開始的等待3秒後開始
  101.                 draw(drawAction.start);
  102.  
  103.                 // 初始化處理者
  104.                 Handler handler = new Handler();
  105.                
  106.                 // 處理者方法
  107.                 Runnable gameStartRun = new Runnable() {
  108.                     public void run() {
  109.                         // 啟動遊戲
  110.                         gameStart();
  111.                     }
  112.                 };
  113.                
  114.                 // 延遲3秒
  115.                 handler.postDelayed(gameStartRun, 3000);
  116.             }
  117.             public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2,
  118.                     int arg3) {
  119.             }
  120.         });
  121.  
  122.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement