如何使用libgdx 消除游戏编写一个简单的游戏

查看:9296|回复:13
资深技术经理
最近Android应用开发做的有点腻了,所以想了解了解Android游戏开发,然后就接触到了Libgdx这个东东,先来介绍下它吧。。
(一) Libgdx介绍
libgdx是一个跨平台的2D/3D的游戏开发框架,它由Java/C/C++语言编写而成。ibgdx兼容大多数微机平台(标准JavaSE实现,能运行在Mac、Linux、Windows等系统,最近加入了对html5的支持)与Android平台(Android1.5以上即可使用,Android2.1以上可满功率发挥)。Libgdx以native方式自带图像解码器,通过其提供的Pixmap可以对指定图像进行像素级渲染操作,从而不依赖Android的Bitmap加载处理图像,可以支持png、jpg、bmp.
(二) 下载Libgdx
下载地址:
一般下载最新版本的Libgdx即可
(三) Libgdx环境搭建
1. 新建一个Android Project&&在Eclipse里面:& &File-&New-&Android Project
2. 在Eclipse项目的根目录下建立一个libs文件夹,把第2步同时把4个文件(有两个是文件夹)copy到这个目录下,&&分别是:
& &a. armeabi/
& &b. armeabi-v7a/
& &c. gdx.jar
& &d. gdx-backend-android.jar
3. Java build path引用jar包
& &1. 右击我们的项目,然后选择Properties-&Java build path-&Libraries-&Add external jar 然后导入我们刚在copy到libs文件夹里面的gdx.jar和gdx-backend-android.jar两个jar文件
(四) 验证我们的环境
上面我们下载了Libgdx的jar包,并且在eclipse里面配置了jar包环境,现在我们要书写代码,并正式运行我们的Libgdx应用程序
1. 创建ApplicationListener实例,这个类是我们Libgdx里面非常重要的一个类,也是我们libgdx编程最重要的地方,如下:复制内容到剪贴板代码:package com.sandy.test2;
import android.util.L
import com.badlogic.gdx.ApplicationL
import com.badlogic.gdx.G
import com.badlogic.gdx.graphics.GL10;
import com.badlogic.gdx.graphics.g2d.BitmapF
import com.badlogic.gdx.graphics.g2d.SpriteB
public class HelloWorld implements ApplicationListener {
& & SpriteB
& & BitmapF
& & public void create() {
& && &&&Log.d(&Sandy&, &oncreate done&);
& && &&&batch = new SpriteBatch();
& && &&&bf = new BitmapFont();
& & public void dispose() {
& && &&&batch.dispose();
& && &&&bf.dispose();
& & public void pause() {
& & public void render() {
& && &&&Log.d(&Sandy&, &render, width: & + Gdx.graphics.getWidth()
& && && && && & + & height: & + Gdx.graphics.getHeight());
& && &&&Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
& && &&&Gdx.gl.glClearColor(0, 0, 0, 0);
& && &&&batch.begin();
& && &&&bf.draw(batch, &Testin---Mkey libgdx(2)&, Gdx.graphics.getWidth()/2,
& && && && && & Gdx.graphics.getHeight()/2);
& && &&&batch.end();
& & public void resize(int arg0, int arg1) {
& & public void resume() {
}它主要有几个生命周期函数 create/dispose/pause/render/resize/resume
顾名思义, create是创建的时候;dispose是销毁的时候;pause暂停; render系统会不断的调用,不断的渲染; resize屏幕大小发生变化,resume屏幕显示给用户
所以,在上面,我们在create的时候初始化了两个变量复制内容到剪贴板代码:public void create() {
& && &&&Log.d(&Sandy&, &oncreate done&);
& && &&&batch = new SpriteBatch();
& && &&&bf = new BitmapFont();
& & }实例化了SpriteBatch,以及字体类BitmapFont,然后在render里面绘制了一行语句: Testin---Mkey libgdx(2)复制内容到剪贴板代码:public void render() {
& && &&&Log.d(&Sandy&, &render, width: & + Gdx.graphics.getWidth()
& && && && && & + & height: & + Gdx.graphics.getHeight());
& && &&&Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
& && &&&Gdx.gl.glClearColor(0, 0, 0, 0);&&//清屏, 把屏幕设置成黑色
& && &&&batch.begin();&&//使用batch一定要用begin和end包裹,然后会出错
& && &&&bf.draw(batch, &Testin---Mkey libgdx(2)&, Gdx.graphics.getWidth()/2,
& && && && && & Gdx.graphics.getHeight()/2);
& && &&&batch.end();
& & }复制内容到剪贴板代码:bf.draw(batch, &Testin---Mkey libgdx(2)&, Gdx.graphics.getWidth()/2,
& && && && && & Gdx.graphics.getHeight()/2);这一行语句的意思是在屏幕的中心(1/2宽度和1/2高度的地方绘制 &Testin---Mkey libgdx(2)& 字符串)
2. 实例化我们的ApplicationListener对象,在我们的Activity 的onCreate的时候,实例化这个ApplicationListener对象,如下:复制内容到剪贴板代码:package com.sandy.test2;
import com.badlogic.gdx.backends.android.AndroidA
import android.os.B
public class Libgdx2Activity extends&&AndroidApplication{
& & /** Called when the activity is first created. */
& & public void onCreate(Bundle savedInstanceState) {
& && &&&super.onCreate(savedInstanceState);
& && &&&initialize(new HelloWorld(), false);&&//实例化ApplicationListener对象,并且传递给initialize()方法
}ok... 那么至此,我们的第一个Libgdx程序已经书写完毕了,接下来,大家就可以像运行普通的Android程序一样在模拟器上面启动它了,效果就是在屏幕中间打印一行字符串&&&Testin---Mkey libgdx(2)&
其实自己也是刚刚学习这个引擎,真心希望和大家一起学习,一起交流。。
学习的版样
本帖最后由 rongwei84n 于
09:56 编辑
资深技术经理
其实还有很多其他引擎,先学习这个吧,有什么心得以后再掏出来。。 希望大家一起学习~~ :)1
资深技术经理
额,忘记说一点了,Libgdx的原点是左下角, Android默认屏幕的原点是左上角。。 ;P1
中级工程师
引用:原帖由 rongwei84n 于
15:56 发表
额,忘记说一点了,Libgdx的原点是左下角, Android默认屏幕的原点是左上角。。 ;P1 哦,往游戏发展啦
资深技术经理
引用:原帖由 四海轩 于
17:03 发表
哦,往游戏发展啦 老是做应用开发,腻了,想换换口味了, :lol1 :lol1&&
现在还在自己慢慢摸索学习,有什么收获一定和大家分享。。
最有价值午饭
andengine也不错,里面包含了box2d.....cocos2d-x可以学学这个做游戏,需求量很大
期待,大神分享经验!
中级工程师
引用:原帖由 rongwei84n 于
17:24 发表
老是做应用开发,腻了,想换换口味了, :lol1 :lol1&&
现在还在自己慢慢摸索学习,有什么收获一定和大家分享。。 老兄,榜样哈!
资深技术经理
引用:原帖由 xuzw13 于
17:45 发表
andengine也不错,里面包含了box2d.....cocos2d-x可以学学这个做游戏,需求量很大 嗯嗯!AndEngine也是非常优秀的的引擎,xuzw13什么时候给我们出个AndEngine学习帖子什么的,或者做成一个专题,真心求教呀。。
资深技术经理
引用:原帖由 四海轩 于
17:47 发表
老兄,榜样哈! :$1 :$1
最有价值午饭
引用:原帖由 rongwei84n 于
17:58 发表
嗯嗯!AndEngine也是非常优秀的的引擎,xuzw13什么时候给我们出个AndEngine学习帖子什么的,或者做成一个专题,真心求教呀。。 呵呵,只有学习过一段时间的AndEngine,后面就没学了,AndEngine引擎的demo也很完整,就是注释少了点儿,所以没有任何游戏开发经验的,刚刚开始学的时候对scence、sprite理解起来比较不是那么清楚具体作用,后面做了一段时间的flash,就比较清楚是干嘛的啦,目前工作没有做游戏开发,有时候玩玩也是很有意思的哈。加油!!!!
中级工程师
引用:原帖由 rongwei84n 于
14:57 发表
最近Android应用开发做的有点腻了,所以想了解了解Android游戏开发,然后就接触到了Libgdx这个东东,先来介绍下它吧。。
(一) Libgdx介绍
libgdx是一个跨平台的2D/3D的游戏开发框架,它由Java/C/C++语言编写而成。ibgdx兼容 ... 小叮当,我有来看你来了奥,又在辛苦分享经验啊?;P1
资深技术经理
引用:原帖由 喜洋洋2013 于
17:40 发表
小叮当,我有来看你来了奥,又在辛苦分享经验啊?;P1 谢谢,谢谢 ~&&:lol1 :lol1
中级工程师
引用:原帖由 rongwei84n 于
20:22 发表
谢谢,谢谢 ~&&:lol1 :lol1 :(1 一点都不亲热我!;P1
顶起+++ 丿up&&up写这几篇文章主要是看了这个系列的文章:
这个系列主要讲述了如何使用Cocos2D编写简单的游戏。稍微读读感觉不错,所以想写个libgdx版本的。
本篇文章主要讲述基本内容的编写,包括显示人物、怪兽和飞镖。
最终效果如下图:
获取libgdx
你可以从libgdx的下载打包好的代码,我下载的是0.98版本。
博客已迁移,请访问:
阅读(...) 评论()公众号:indienova
indienova 独立游戏
感谢您阅读跨平台游戏开发 : libGDX ,本文可能来自网络,如果侵犯了您的相关权益,请联系管理员。QQ:

我要回帖

更多关于 vb编写简单小游戏 的文章

 

随机推荐