返回顶部
首页 > 资讯 > 移动开发 >Android基本游戏循环实例分析
  • 141
分享到

Android基本游戏循环实例分析

循环Android 2022-06-06 09:06:24 141人浏览 独家记忆
摘要

本文实例讲述了Android基本游戏循环。分享给大家供大家参考。具体如下: // desired fps private final static int MAX_FPS

本文实例讲述了Android基本游戏循环。分享给大家供大家参考。具体如下:


// desired fps
private final static int  MAX_FPS = 50;
// maximum number of frames to be skipped
private final static int  MAX_FRAME_SKIPS = 5;
// the frame period
private final static int  FRAME_PERIOD = 1000 / MAX_FPS; 
@Override
public void run() {
  canvas canvas;
  Log.d(TAG, "Starting game loop");
  long beginTime;   // the time when the cycle begun
  long timeDiff;   // the time it took for the cycle to execute
  int sleepTime;   // ms to sleep (<0 if we're behind)
  int framesSkipped; // number of frames being skipped 
  sleepTime = 0;
  while (running) {
    canvas = null;
    // try locking the canvas for exclusive pixel editing
    // in the surface
    try {
      canvas = this.surfaceHolder.lockCanvas();
      synchronized (surfaceHolder) {
        beginTime = System.currentTimeMillis();
        framesSkipped = 0; // resetting the frames skipped
        // update game state
        this.gamePanel.update();
        // render state to the screen
        // draws the canvas on the panel
        this.gamePanel.render(canvas);
        // calculate how long did the cycle take
        timeDiff = System.currentTimeMillis() - beginTime;
        // calculate sleep time
        sleepTime = (int)(FRAME_PERIOD - timeDiff);
        if (sleepTime > 0) {
          // if sleepTime > 0 we're OK
          try {
            // send the thread to sleep for a short period
            // very useful for battery saving
            Thread.sleep(sleepTime);
          } catch (InterruptedException e) {}
        }
        while (sleepTime < 0 && framesSkipped < MAX_FRAME_SKIPS) {
          // we need to catch up
          // update without rendering
          this.gamePanel.update();
          // add frame period to check if in next frame
          sleepTime += FRAME_PERIOD;
          framesSkipped++;
        }
      }
    } finally {
      // in case of an exception the surface is not left in
      // an inconsistent state
      if (canvas != null) {
        surfaceHolder.unlockCanvasAndPost(canvas);
      }
    }  // end finally
  }
}

希望本文所述对大家的Android程序设计有所帮助。

您可能感兴趣的文章:Unity3D游戏引擎实现在Android中打开WEBView的实例Android 游戏引擎libgdx 资源加载进度百分比显示案例分析Android游戏开发学习②焰火绽放效果实现方法Android游戏开发学习①弹跳小球实现方法Android实现完整游戏循环的方法Android游戏开发实践之人物移动地图的平滑滚动处理Android 游戏开发之Canvas画布的介绍及方法解析Android游戏中获取电话状态进行游戏暂停或继续的解决方法Android游戏开发学习之引擎用法实例详解


--结束END--

本文标题: Android基本游戏循环实例分析

本文链接: https://lsjlt.com/news/26515.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android基本游戏循环实例分析
    本文实例讲述了Android基本游戏循环。分享给大家供大家参考。具体如下: // desired fps private final static int MAX_FPS ...
    99+
    2022-06-06
    循环 Android
  • Android实现完整游戏循环的方法
    本文实例讲述了Android实现完整游戏循环的方法。分享给大家供大家参考。具体如下: 1. DroidzActivity.java: package net.obviam.d...
    99+
    2022-06-06
    方法 循环 Android
  • Python基本循环实例Day 1
      输入正确的用户名和密码,显示登陆界面,超过三次输入错误则锁定,定义字符串记得加上单引号,数字可以int定义,while循环和if循环语句后加上:,break不加: print("---------Welcome to Memory C...
    99+
    2023-01-31
    实例 Python Day
  • Verilog循环语句实例分析
    这篇文章主要介绍了Verilog循环语句实例分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Verilog循环语句实例分析文章都会有所收获,下面我们一起来看看吧。关键词:while, for, repeat,...
    99+
    2023-06-27
  • NodeJS事件循环实例分析
    这篇文章主要介绍“NodeJS事件循环实例分析”,在日常操作中,相信很多人在NodeJS事件循环实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”NodeJS事件循环实例分析”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-29
  • JavaScript事件循环实例分析
    这篇文章主要讲解了“JavaScript事件循环实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript事件循环实例分析”吧!前言异步函数也是有执行顺序的。本质上来说,Ja...
    99+
    2023-07-02
  • Android五子棋游戏程序完整实例分析
    最近学习了五子棋的课程,感觉挺不错。然后自己写了个关于五子棋的android程序,从中还是能够学习到很多东西的。现在我们开始今天五子棋程序的编写历程。 好了,我们现在开始一步步...
    99+
    2022-06-06
    游戏程序 程序 Android
  • Pythonpygame动画游戏循环游戏时钟实现原理
    目录1. 游戏循环和游戏时钟1.1 游戏中的动画实现原理2. 游戏循环3. 游戏时钟1. 游戏循环和游戏时钟 之前几篇文章中,飞机大战游戏中的英雄飞机已经被绘制到屏幕上了,怎么能够让...
    99+
    2024-04-02
  • JavaScript循环作用域实例分析
    本篇内容主要讲解“JavaScript循环作用域实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaScript循环作用域实例分析”吧! 循环作用域...
    99+
    2024-04-02
  • Python2与python3中 for 循环语句基础与实例分析
    下面的代码中python2与python3的print使用区别,大家注意一下。python3需要加()才行。 语法: for循环的语法格式如下: for iterating_var in sequenc...
    99+
    2022-06-04
    语句 实例 基础
  • JavaScript循环的示例分析
    这篇文章主要介绍JavaScript循环的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!要计算1+2+3,我们可以直接写表达式:1 + 2 + 3; // 6要计算1+2+3...
    99+
    2024-04-02
  • SpringBoot禁止循环依赖实例分析
    这篇文章主要讲解了“SpringBoot禁止循环依赖实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SpringBoot禁止循环依赖实例分析”吧!前言:Spring的Bean管理,一直...
    99+
    2023-06-30
  • Spring循环依赖原理实例分析
    本篇内容介绍了“Spring循环依赖原理实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简介概述@Autowired进行属性注入可以解...
    99+
    2023-07-02
  • SpringBoot循环依赖问题实例分析
    本文小编为大家详细介绍“SpringBoot循环依赖问题实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot循环依赖问题实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。简介说明本文介...
    99+
    2023-07-02
  • Node.js事件循环实例代码分析
    本篇内容主要讲解“Node.js事件循环实例代码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Node.js事件循环实例代码分析”吧!通过代码模拟 eventloopconst e...
    99+
    2023-07-04
  • html5游戏设计模式实例分析
    这篇文章主要介绍“html5游戏设计模式实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“html5游戏设计模式实例分析”文章能帮助大家解决问题。   一、背...
    99+
    2024-04-02
  • Java的分支结构与循环实例分析
    这篇文章主要介绍“Java的分支结构与循环实例分析”,在日常操作中,相信很多人在Java的分支结构与循环实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java的分支结构与循环实例分析”的疑惑有所帮助!...
    99+
    2023-06-29
  • Python 用for循环实现猜数字游戏
    据说Python语言是装逼神器,我也来学下Python。 Python的语法确实比较优美,都不要{},连标点符号都很少,下面我们用Python来写个猜数字游戏练练手。 """ Created on Sun Oct 23 19:35:01...
    99+
    2023-01-31
    数字 游戏 Python
  • Node中的事件循环、process.nextTick()实例分析
    这篇文章主要讲解了“Node中的事件循环、process.nextTick()实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node中的事件循环、p...
    99+
    2024-04-02
  • Java中的Spring循环依赖实例分析
    这篇文章主要讲解了“Java中的Spring循环依赖实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的Spring循环依赖实例分析”吧!什么是循环依赖?很简单,就是A对象依赖...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作