gpt4 book ai didi

Android实现完整游戏循环的方法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Android实现完整游戏循环的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了Android实现完整游戏循环的方法。分享给大家供大家参考。具体如下:

1. DroidzActivity.java:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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程序设计有所帮助.

最后此篇关于Android实现完整游戏循环的方法的文章就讲到这里了,如果你想了解更多关于Android实现完整游戏循环的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com