libgdx学习笔记

大家可以去http://code.google.com/p/libgdx/下载最新的libgdx


开发Android平台的游戏,只需:
  • armeabi/
  • armeabi-v7a/
  • gdx-backend-android.jar
  • gdx.jar  


public  class LibgdxActivity extends  AndroidApplication {    

    @Override
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        initialize(new MyGame(), false); 
    } 

}


ava.lang.Object
| Activity
|com.badlogic.gdx.backends.android.AndroidApplication
这意味着AndroidApplication继承自API中的Activity,因此我们使用它也需要在Manifest中注册


 ApplicationListener是一个接口,我们很容易可以看出,实现了这个接口的类都有一个共同的特点,它们都会经历一个创建,渲染(render),暂停,继续,销毁等一系列过程,发生对应时间的时候会自用调用相应的函数。特别是render()函数,它是一个系统在不停调用的函数(当然这个实例满足正在运行的条件),因此我们可以把很多操作放在render()函数中实现,不过千万注意不要进行耗时的操作以免堵塞UI线程。




  

  
1044150cyccwwgssfufbyh.jpg (746×493)

  


我们先打印出一行字: "Testin—Mkey libgdx(2)"
  1. public class MyGame implements ApplicationListener {
  2.         SpriteBatch batch;
  3.         BitmapFont bf;
  4.         public void create () {
  5.                 // STUB
  6.                 batch=new SpriteBatch();
  7.                 bf=new BitmapFont();
  8.         }

  9.         public void render () {
  10.                 // STUB
  11.                 Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
  12.                     Gdx.gl.glClearColor(0f,0f,0f,0f);
  13.                 batch.begin();
  14.                 bf.draw(batch, "Testin——Mkey libgdx(2)",Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2);
  15.                 batch.end();
  16.         }

  17.         public void resize (int width, int height) { 
  18.                 // STUB
  19.         }

  20.         public void pause () { 
  21.                 // STUB
  22.         }

  23.         public void resume () {
  24.                 // STUB
  25.         }

  26.         public void dispose () { 
  27.                 // STUB
  28.                 batch.dispose();
  29.                 bf.dispose();
  30.         }
  31. }
复制代码
             首先记得在create()函数中初始化一下相应的变量,否则会得到空指针。绘图用SpriteBatch,以及字体类BitmapFont,至于后者,我们很显然可以从名字就看出,它的实现是借助图片来实现字体的显示的,那么具体又是怎么一回事呢?我们在后面的教程中都会提到,给大家详细地解答。

            这里还有非常重要的一点,就是绘图用SpriteBatch在绘图前一定要调用begin()方法,而在调用后一定要调用end()方法,否则程序都会报错。原因也是很显然的。
一旦ApplicationListener开始运行,render函数就会不停执行,里面的语句也一样被不停地执行,这里对
            Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
            Gdx.gl.glClearColor(0f,0f,0f,0f);

            这两条语句做一个简单的解释。稍微熟悉一点opengl的人都能看出来,这是一个
清屏的函数,清除了颜色缓存,并把刷新后的屏幕的颜色置为(0,0,0,0),也就是黑色,如果(1,1,1,0)那么就是白色了。

  
另外,在dispose()函数中不要忘了对变量执行dispose()方法,在libgdx中,很多资源必须手动释放,否则将一直占用着内存,很可能就此发生OOM(OutOfMemory)的错误,而libgdx中有一个结构Disposable,一般实现了这个接口的类都是需要手动回收的,我们可以查看一下官方的文档,发现libgdx中众多常用的类:AssetManagerBitmapFont,BitmapFontCacheCameraGroupStrategyDecalBatchETC1.ETC1DataFrameBufferGdx2DPixmapIndexArrayIndexBufferObject,IndexBufferObjectSubDataMD5Renderer,MeshParticleEffectParticleEffectPool.PooledEffectPixmapPixmapPackerShaderProgramSimpleTileAtlasSkinSpriteBatch,SpriteCacheStageTextureTextureAtlasTileAtlas,TileMapRendererVertexArrayVertexBufferObjectVertexBufferObjectSubDataWorld都是需要手动回收的,因此一定不要忘记手动回收,Android设备的内存十分有限!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值