`
macken
  • 浏览: 344954 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

libgdx实例metagun代码分析(二)

    博客分类:
  • game
阅读更多

继续上一篇 http://macken.iteye.com/blog/1816708 

这篇写一下metagun的时钟周期

Metagun实现了ApplicationListener接口,程序会调用定时调用render()函数进行渲染

render函数实现

public void render () {
		Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
		accum += Gdx.graphics.getDeltaTime();// 1/60s为   一个时钟 
		while (accum > 1.0f / 60.0f) {
			screen.tick(input);
			input.tick();
			accum -= 1.0f / 60.0f;
		}
		screen.render();
	}

 代码中1/60 s为一个时钟,达到一个时钟会调用screen和input的时钟函数tick,使得程序在低端机型和高端机型上的展现速度一样,当然这样的话低端机型的fps会低。

 

GameScreen类的tick函数实现

public void tick (Input input) {
		Stats.instance.time++;//时钟周期数 +1
		//escape按键 弹出暂停窗口
		if (!input.oldButtons[Input.ESCAPE] && input.buttons[Input.ESCAPE]) {
			setScreen(new PauseScreen(this));
			return;
		}
		if (!level.player.removed)
			level.player.tick(input);
		else if (mayRespawn) {
			if (input.buttons[Input.SHOOT] && !input.oldButtons[Input.SHOOT]) {//按X 重新开始
				respawnRoom();//重新产生当前level层对象
				mayRespawn = false;
			}
		}
		level.tick();
		Stats.instance.hats = level.player.hatCount;
	}

 

GameScreen类是游戏窗口,tick函数在render中被调用,依次更新游戏人物,游戏地图的属性

render()函数中最后调用screen.render()函数将玩家及地图渲染到窗口中,如果是低端机型,会一次性将积累的时钟周期消耗掉然后再进行渲染,极低端配置的机型可能会出现卡或人物位置瞬间变化的情况。

 

分享到:
评论

相关推荐

    android游戏引擎libGDX 实例和源码MyFirstTriangle_20110221,很不错的,强烈推荐

    android游戏引擎libGDX 实例和源码3,很不错的,强烈推荐:MyFirstTriangle_20110221.zip

    android游戏引擎libGDX 实例和源码ProjectionViewportCamera_20110305,很不错的,强烈推荐

    android游戏引擎libGDX 实例和源码4,很不错的,强烈推荐:ProjectionViewportCamera_20110305.zip

    android游戏引擎libGDX 实例MeshColorTexture_20110222和源码2,很不错的,强烈推荐

    通过分析代码,你可以了解如何初始化和管理Mesh对象,如何加载和应用颜色纹理,以及如何在Shader中处理这些数据。此外,还可以学习libGDX的生命周期管理和多平台兼容性处理。 总结来说,"MeshColorTexture_20110222...

    Libgdx入门-代码1

    Libgdx是一款基于OpenGL ES技术开发的Android游戏引擎,支持Android平台下的2D和3D游戏开发,2D物理引擎采用Box2D实现。单就性能角度来说,堪称是一款非常强大的Android游戏引擎,但缺陷在于精灵类等相关组件在使用...

    libgdx-demo-metagun:Libgdx 演示 --metagun

    通过分析 "libgdx-demo-metagun-master" 中的源代码,可以深入了解 Libgdx 的使用方法。此外,官方文档、社区论坛以及各种教程资源都是学习 Libgdx 的宝贵资料。 7. **优化与性能**: Libgdx 提供了性能监控工具...

    android游戏引擎libGDX 实例和源码gdx-helloworld-0.9.1,很不错的,强烈推荐

    通过学习和分析这个实例,你可以了解如何设置项目结构、创建屏幕、处理输入、渲染图形以及如何在不同平台上运行游戏。这将为你后续的LibGDX游戏开发打下坚实的基础。如果你对某个特定方面有深入的兴趣,例如2D渲染、...

    Libgdx入门-代码2

    Libgdx是一款基于OpenGL ES技术开发的Android游戏引擎,支持Android平台下的2D和3D游戏开发,2D物理引擎采用Box2D实现。单就性能角度来说,堪称是一款非常强大的Android游戏引擎,但缺陷在于精灵类等相关组件在使用...

    实例代码 学习libgdx - SpriteBatch

    这个实例代码是学习如何使用libGDX中的SpriteBatch类的宝贵资源。 1. **SpriteBatch的介绍** SpriteBatch是libGDX用于批量绘制2D图像的工具。它的核心功能是减少OpenGL调用的次数,通过将多个绘制操作合并到一起,...

    libgdx经典游戏实例源码

    《libgdx经典游戏实例源码——男人下一百层》 Libgdx 是一款强大的开源游戏开发框架,专为跨平台游戏设计,支持Android、iOS、HTML5以及桌面平台。这个压缩包包含的是一个名为“Super Jumper”的经典游戏源码,它是...

    Libgdx 跨平台游戏开发手册 的示例代码_java_代码_下载

    本手册的示例代码主要基于Java编程语言,旨在帮助开发者深入理解Libgdx的功能和用法。 首先,让我们来探讨Libgdx的核心组件: 1. **Stage**: Libgdx的舞台(Stage)是处理用户输入和渲染2D图形的主要组件。开发者...

    libGDX学习记录(二)阶段源码

    libGDX学习记录(二)阶段源码 展示TexturePacker合成的图片,详细地址: https://blog.csdn.net/weixin_47450795/article/details/110037945

    Libgdx版本FlappyBird

    《Libgdx版本FlappyBird:使用Libgdx引擎创建移动游戏》 Libgdx是一个强大的开源游戏开发框架,专为跨平台游戏设计,支持Windows、Linux、Mac OS X、Android以及HTML5等多个平台。本项目"Libgdx版本FlappyBird"是一...

    一个libgdx下box2d的使用实例

    一个libgdx下box2d的使用实例 包括box2d刚体创建,碰撞已经刚体和texture的绑定

    Android代码-libgdx-0.9.zip

    在压缩包中的"libgdx-0.9.6"可能包含了LibGDX 0.9.6版本的源代码、库文件、文档和示例项目。通过这些内容,开发者可以深入理解框架的工作原理,学习如何在早期版本中使用LibGDX来构建游戏。 学习和使用LibGDX,不仅...

    libgdx游戏

    **二、游戏源码分析** "android游戏源码"表明我们拥有的是一个已经实现的Android游戏项目。在源码中,我们可以学习到以下关键点: 1. **主循环**:游戏的核心是主循环,它不断地更新游戏状态、处理输入、渲染画面...

    libGDX 1.10.0 开发包

    LibGDX 是一个开源的游戏开发框架,主要用于构建跨平台的2D和3D游戏。它为开发者提供了丰富的功能,使得游戏开发变得更加高效和便捷。在提供的"libGDX 1.10.0 开发包"中,包含了以下几个关键组件: 1. **gdx-1.10.0...

    libgdx 粒子编辑器

    此外,可能还有Java或Kotlin源代码,这些代码展示了如何在LibGDX游戏中加载和使用这些粒子效果。 使用LibGDX粒子编辑器的一些关键知识点包括: 1. **粒子系统基础**:理解粒子系统的基本概念,如粒子的生命周期、...

    libGDX游戏开发入门指南_13845649 高清扫描版

    libGDX游戏开发入门指南_13845649 高清扫描版

    libGDX 0.98版飞机大战(有源代码,仅供学习)

    本资源提供的是一个基于libGDX 0.98版本的飞机大战游戏的源代码,旨在为初学者提供一个学习和实践的起点。 游戏开发的核心是掌握编程语言和游戏引擎的使用。在libGDX中,主要使用Java进行编程,因此,对Java基础的...

Global site tag (gtag.js) - Google Analytics