国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現完整游戲循環的方法

2020-04-11 11:24:03
字體:
來源:轉載
供稿:網友

本文實例講述了Android實現完整游戲循環的方法。分享給大家供大家參考。具體如下:

1. DroidzActivity.java:

package net.obviam.droidz;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.Window;import android.view.WindowManager;public class DroidzActivity extends Activity {  /** Called when the activity is first created. */ private static final String TAG = DroidzActivity.class.getSimpleName();  @Override  public void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    // requesting to turn the title OFF    requestWindowFeature(Window.FEATURE_NO_TITLE);    // making it full screen    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);    // set our MainGamePanel as the View    setContentView(new MainGamePanel(this));    Log.d(TAG, "View added");  } @Override protected void onDestroy() { Log.d(TAG, "Destroying..."); super.onDestroy(); } @Override protected void onStop() { Log.d(TAG, "Stopping..."); super.onStop(); }}

2. MainThread.java:

package net.obviam.droidz;import android.util.Log;import android.view.SurfaceHolder;public class MainThread extends Thread { private static final String TAG = MainThread.class.getSimpleName(); private SurfaceHolder surfaceHolder; private MainGamePanel gamePanel; private boolean running; public void setRunning(boolean running) { this.running = running; } public MainThread(SurfaceHolder surfaceHolder, MainGamePanel gamePanel) { super(); this.surfaceHolder = surfaceHolder; this.gamePanel = gamePanel; } @Override public void run() { long tickCount = 0L; Log.d(TAG, "Starting game loop"); while (running) {  tickCount++;  // update game state  // render state to the screen } Log.d(TAG, "Game loop executed " + tickCount + " times"); }}

3. MainGamePanel.java:

package net.obviam.droidz;import android.content.Context;import android.graphics.Canvas;import android.view.MotionEvent;import android.view.SurfaceHolder;import android.view.SurfaceView;public class MainGamePanel extends SurfaceView implements SurfaceHolder.Callback { private MainThread thread; public MainGamePanel(Context context) { super(context); getHolder().addCallback(this); // create the game loop thread thread = new MainThread(); setFocusable(true); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceCreated(SurfaceHolder holder) { thread.setRunning(true); thread.start(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { boolean retry = true; while (retry) {  try {  thread.join();  retry = false;  } catch (InterruptedException e) {  // try again shutting down the thread  } } } @Override public boolean onTouchEvent(MotionEvent event) { return super.onTouchEvent(event); } @Override protected void onDraw(Canvas canvas) { }}

希望本文所述對大家的Android程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 赤峰市| 五台县| 垫江县| 保定市| 黔南| 大悟县| 南安市| 通州市| 成安县| 赣州市| 南丹县| 台中市| 保定市| 乌什县| 会泽县| 江孜县| 平湖市| 威宁| 文水县| 呼和浩特市| 乌恰县| 临邑县| 布尔津县| 石渠县| 原阳县| 广东省| 龙口市| 甘孜县| 永安市| 樟树市| 旌德县| 临沭县| 阳西县| 桃园县| 景洪市| 黄冈市| 个旧市| 晋江市| 茂名市| 达尔| 佛教|