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

[Android游戏开发]基于libgdx的一个简单游戏demo

 
阅读更多

最近在利用业余时间自学游戏开发,在看《Begining Android Games》,并学习了一下其中libgdx的原型实现和一个示例工程Mr. Nom。今天使用libgdx实现了一个简单的游戏场景:类似坦克大战中,一个坦克从左往右发射子弹。

效果图如下:

Tank shooting

 

 

中间向上的箭头可以增加坦克同时发射的炮弹数目,右边的x按钮是发射键。

 

libgdx还是很强的,起码对于我这样不懂游戏开发的人来说,很容易上手。

 

demo实现中还有一些问题:

1.坦克不能移动,虽然留出了接口,但是想了想实现,还挺复杂

2.炮弹的发射、轨道机制还有问题,入上图所示,出现了炮弹相连的情况;炮弹渲染轨迹不是平滑的

3.代码没有经过优化的。程序运行一会,手机后盖处有明显的发热(不知道是插着数据线的缘故还是程序实现占用太多的cpu)

4.纯Canvas API实现的,没有用到OpenGL,性能上可能有问题。(譬如炮弹的渲染,我把渲染间隔降低,炮弹渲染轨迹可以稍微平滑一点,不过CPU耗费明显加大,机器发热明显)。仅从这个demo还不能看出Canvas API的局限性,如果当画面足够复杂,像Replica Island那样的或者3D,Canvas肯定就hold不住了。(注意:使用OpenGL ES的话,OpenGL ES实例化就会占用8M内存,这一点在做应用开发的时候需要特别注意,如果应用可以不用OpenGL ES就可以做的很好的话,还是不要用了,毕竟8M内存带来的副作用还是不小的)。

5.从上面的问题可以看出,游戏开发还是很有门槛的。而且需要多动手,这些问题我也是写这个demo时碰到的。

 

 

想了想上面的几个问题,都还没有好的解决方法。而且这几个都是很硬的问题,都是需要搞定的。希望在后面的学习中能发现解决的办法。

 

源码(包含Mr. Nom实现部分):https://nsworks.googlecode.com/svn/ringring

 

0
0
分享到:
评论

相关推荐

    androidstudio可运行libgdx的demo

    首先,确保你已经安装了Android Studio,这是一个基于IntelliJ IDEA的集成开发环境,专为Android应用开发设计。同时,你也需要Java Development Kit (JDK) 来编译Java代码,因为LibGDX项目依赖于Java。 二、导入...

    libgdx引擎开发的游戏

    本篇文章将深入剖析基于libgdx的Cuboc Demo,揭示其背后的开发技术和设计思路。 首先,Cuboc Demo是libgdx社区提供的一款示例项目,它展示了libgdx在2D游戏开发中的应用。通过Cuboc,我们可以学习到如何使用libgdx...

    libgdx游戏

    LibGDX是一个强大的开源Java框架,专为跨平台2D和3D游戏开发设计。这个框架允许开发者使用单一代码库创建游戏,可以在Android、iOS、Windows、Mac OS X和Linux等多个平台上运行。"libgdx游戏"这个标题暗示我们将深入...

    Libgdx box2d demo

    这个实例可能是一个基于小球的游戏,名为"MyBallGame",通过实际操作,可以让开发者直观地理解如何在Libgdx中实现Box2D的物理效果。 1. **Libgdx引擎**:Libgdx的核心功能包括图形渲染、音频处理、输入管理、文件I/...

    libgdx demo

    本项目是基于 LibGDX 的一个基础演示(Demo),旨在帮助初学者快速理解和入门游戏引擎的使用。 ### 1. LibGDX 框架核心组件 LibGDX 提供了以下几个关键组件: - **Stage**: 用于组织游戏中的图形元素,如精灵、...

    libgdx 小游戏 跑酷类 源码 亲测可以使用 demo

    这个“RunBigAdventure”项目是一个基于LibGDX框架的跑酷类小游戏的源代码示例,适合初学者和有经验的开发者参考学习。 首先,让我们深入了解一下LibGDX的关键特性: 1. **跨平台支持**:LibGDX通过单一的代码库...

    使用scene2d和手势的 简单libgdx赛车游戏_java_代码_下载

    在本项目中,"使用Scene2D和手势的简单libgdx赛车游戏"是一个基于Java的开源项目,它展示了如何利用libGDX游戏开发框架创建一个互动的赛车游戏,同时结合Scene2D库来处理用户界面和手势识别。libGDX是一个强大的、跨...

    libgdx使用box2d的demo,很不错

    总之,"libgdx使用box2d的demo"是一个很好的学习资源,它帮助开发者了解如何在LibGDX环境中实现复杂的2D物理效果,这对于开发出更真实、更有趣的游戏至关重要。通过深入研究这个Demo,你将能够掌握一系列实用的技能...

    libgdx源码invaders

    "libgdx源码invaders"是基于LibGDX框架的一个示例项目,它展示了如何利用LibGDX来构建一个3D游戏场景。通过分析和学习这个源码,开发者可以深入了解LibGDX的工作原理和功能。 1. **LibGDX框架基础**: LibGDX提供...

    Android实例源码-小游戏类安卓源代码(7例).zip

    Android实例源码-小游戏类安卓源代码(7例) 安卓冒险游戏源码可直接运行类似于精灵快跑这种可做毕业设计 安卓飞机游戏 完美版的Android 拼图游戏...类似冰雪奇缘一类的三消游戏,用quick-x实现的,简单的demo 连连看

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

    本项目"libgdx-demo-metagun"是基于 Libgdx 创建的一个演示应用,名为“Metagun”,它旨在展示 Libgdx 在游戏开发中的各种可能性和核心特性。 1. **Libgdx 简介**: Libgdx 是一个用 Java 编写的开源游戏开发库,...

    Android游戏源码

    本篇文章将深入探讨一个基于Libgdx游戏引擎的Android游戏源码,带你了解其结构、功能以及如何利用它进行跨平台开发。 Libgdx是一款强大的开源游戏开发框架,它支持Java语言,可应用于Android、iOS、HTML5、桌面等多...

    植物大战僵尸超简AndroidDEMO

    "植物大战僵尸超简AndroidDEMO" 是一个基于Android平台的简易版游戏项目,旨在呈现《植物大战僵尸》的经典玩法。DEMO通常代表演示或示例,意味着这个项目可能是一个教学资源或者是为了展示游戏核心功能的简化版本。 ...

    gameDemo:libgdx游戏演示

    在“gameDemo”这个项目中,我们看到了libgdx框架的实际应用,它为我们呈现了一个游戏演示,让我们深入了解一下libgdx的魅力所在。 首先,libgdx的核心特性之一是其跨平台性。它支持Windows、Mac OS X、Linux、...

    libGdx初探

    libGdx是一个强大的开源跨平台游戏开发框架,它支持Android、iOS、Windows、Linux以及HTML5等多种平台。libGdx为开发者提供了丰富的功能,包括图形渲染、音频处理、物理引擎、输入管理等,其中粒子系统是其在视觉...

    安卓魂斗罗DEMO

    这款游戏源码的开放,为开发者提供了一个学习和研究Android游戏开发的宝贵资源。 在Android游戏开发中,主要涉及以下几个关键技术点: 1. **游戏引擎**:虽然描述没有明确指出,但可以推测这款DEMO可能使用了一些...

    代码健身操DEMO

    在这个项目中,"Game"可能是代表一个游戏应用程序或者是一个用于教学的游戏开发实例。接下来,我们将深入探讨与Java编程、游戏开发以及实践练习相关的知识点。 1. **Java编程基础**: - **类与对象**:Java是面向...

    Android源码——书籍翻页效果的demo.7z

    在Android开发中,实现书籍翻页效果是一种常见的增强用户体验的方式,尤其在电子阅读应用或教育类应用中。这个"Android源码——书籍翻页效果的demo.7z"压缩包包含了一个实现这种效果的示例代码,可以帮助开发者理解...

    GLSurfaceView入门demo

    在Android开发中,使用GLSurfaceView可以实现高性能的图形绘制,尤其适合游戏和复杂可视化应用。下面我们将通过三个简单的GLSurfaceView demo来逐步了解如何使用它。 **1. 创建GLSurfaceView** 首先,我们需要在...

    安卓Android源码——落花效果+字体渐变的Demo源码.zip

    这个压缩包文件包含的是一个基于安卓(Android)平台的源码示例,主要展示了"落花效果"和"字体渐变"两种视觉特效。在安卓应用开发中,这样的特效可以增强用户界面的吸引力和交互性,使应用更具视觉冲击力。 首先,...

Global site tag (gtag.js) - Google Analytics