libgdx API之提示

来源:互联网 发布:zip linux 解压命令 编辑:程序博客网 时间:2024/06/05 17:50
下面是来自官方的使用API过程中的一些注意(别吐槽排版):
1.android平台下,在严苛模式(strict mode)中无法使用net
2.使用post requests时不要让Content-Type header缺省,因为不同平台它的默认值可能不同。
3.使用preferences保存游戏信息时不要忘了调用flush()。
4.Gdx.input.isPeripheralAvailable(Peripheral.MultitouchScreen)。类似如此可以获得平台所支持的外围设备。
5.batch渲染的坐标采用笛卡尔坐标系(左下角为原点)但屏幕坐标仍以左上角为原点。(你试着调用Gdx.input.getX()来获得点击的屏幕坐标会发现这一区别)。
6.事件分派位于在渲染线程中,紧接着调用ApplicationListener.render()。
7.GestureDetector可以通过使用其有参构造函数来设置一些如划屏最长时间的参数。
8.加速度传感接口获得的数值是与设备朝向无关的(横屏或竖屏),z轴指向垂直屏幕外,x轴沿着屏幕较长的一边指向右,y轴沿短边指向上。
9.Gdx.input.vibrate(new long[] { 0, 200, 200, 200}, -1)。振动。
10.Gdx.graphics.setContinuousrendering(false)。当非持续渲染时,只有以下事件发生时会调用render()
输入事件触发;调用Gdx.graphic.requestRendering();调用Gdx.app.postRunnable()。
11.ScreenUtils.getFrameBufferPixmap(x, y, w, h)。可以用来截屏。还可用来组成视频。
12.GLProfiler可以用来获得打印渲染底层的日志的信息。
13.如果使用FitViewport使画面出现黑快而你又想在这黑块上做点事情如显示时间,可以使用glViewport。
14.开发android平台上的应用时,如果使用GL20,建议在AndroidManifest上添加<uses-feature android:glEsVersion="0x00020000" android:required="true" />
15.使用shapeRenderer时代码位置越后的绘画会最先执行。
16.u,v使用的是纹理坐标系(0~1)。
17.当渲染一张很大的背景图片时,请像下面这样代码,以获得性能提升。
batch.disableBlending();
backgroundSprite.draw(batch);
batch.enableBlending();
18.SpriteBatch有一个能设置缓存sprites数目的构造函数。如果数目设置过低会引起额外的GPU调用,过高则会占用不必要的内存。
19.stop thinking in pixels,给游戏开发者的建议。
20.使用Label时可以通过GlyphLayout适配布局。还有你知道BitmapFont可以通过在文本中写入一些如[RED]标志来改变颜色吗,使能markup即可。
21.TexturePacker在jre 1.7+上运行更快,特别是处理上百张图片时。
22.在使用TexturePacker时如果图片文件名像下面格式:animation_1,animation_2...后缀的数字会出现在atlas的index中
23.CIM,一种压缩格式的图片,读取和保存更快,当设备失去焦点要保存大量图片时建议使用它。PixmapIO支持这种非压缩图片。
PixmapIO.writeCIM( dataFile, pixmap );PixmapIO.readCIM( dataFile );
24.一般来说失去焦点后返回纹理丢失的内容会由默认的纹理管理机制寻回,开发者对此不必太费心,但限于从文件中读取的纹理的情况。
Texture pixmaptex = new Texture( pixmap );失去焦点后返回不会自动加载。
25.pixmapPacker可以动态生成textureatlas。
26.actor.setVisale(false),actor不会调用draw且不能接受输入事件。
27.在actor的draw(Batch batch,float parentAlpha)方法内如果想使用shapeRenderer请先调用batch.end。
28.scence2d中的eventListener和captureListener区别:一个从事件目标前传自父演员,一个相反。
29.Action完成后会自动从当前actor移除回到pool中。
30.推荐的第三方服务:adMod,Airpush:广告,推送。Swarm,NextPeer:多人游戏。ProGuard:优化和混淆代码。JET:jar转化成exe。
31.Bundling jre:给你的jar游戏捆绑上迷你jre。
32.ChangeListener和ClickListener区别:从字面上也很容易理解,一个是属性改变时触发,一个点击时触发。前者包括后者。注意后者对于只有点击属性的控件才有效。相对于ChangeListener,更建议使用ClickListner。前者的事件能取消。
33.skin的格式转换:对于存储于skin的一个纹理,可以通过getPatch,getRegion方便转换。
34.Skin.newDrawable不会自动存入skin中。
35.想获得一个只有颜色填充的纹理但缺不想去用画图软件生成一个图片,在skin的json中写入像下面的东西:
com.badlogic.gdx.graphics.Color: {
        green: { r: 0, g: 1, b: 0, a: 1 }
    },
    com.badlogic.gdx.scenes.scene2d.ui.Skin$TintedDrawable: {
        round-green: { name: round, color: green }
    }
36.由assetmanager管理的资源不应该手动额外地释放,调用assetmanager.unload()!









0 0