libgdx中延迟加载资源文件
来源:互联网 发布:自学英语知乎 编辑:程序博客网 时间:2024/05/16 12:25
使用libgdx开发有一段时间了,一直比较忙,没来得及整理,这里先写上最近遇到的一个问题,以后在慢慢整理。
libgdx能够兼容desktop和android不同平台,使程序的使用范围更大,不过这也造成了一些问题,如果想实现Android或desktop中的特有功能,就比较麻烦。前段时间经过一些开发,用了Android上的MIDI,jet,大致了解了如何实现,今天看了一些libgdx的源代码,发现源代码中也是都是这么实现的。
libgdx实现平台特定功能的方法(这种思想比较好):在libgdx中定义一个接口,定义需要实现的功能,然后在android端和desktop端分别进行不同的实现,在实例化游戏实例的时候,传入这些实例。
这次项目资源文件比较多,加载时间比较长,所以就想先显示loading画面,最开始想法比较简单,在create的方法中,载入资源文件前调用setScreen,后来发现在create函数结束前,render和update的方法都不会被调用的,ui线程也是单线程嘛。
于是便在程序中加入各种runnable(之前还有很多现在看来很好笑的尝试,创建两个activity....),发现无论在什么位置加都有各种问题,现在明白了,和挺多有ui的程序类似,前一段时间eclipse插件开发也遇到过,ui本身是一个线程,含有一些资源,如果在其他线程访问就会有各种问题,所以出现了runonuithread等之类的方法。
那在libgdx中怎么实现呢,libgdx考虑到了这一点,在Application中定义了public void postRunnable(Runnable runnable);这一接口,在Android和desktop中分别进行不同的实现,所以我们调用这个方法就可以了,Gdx.app.postRunnable(runnable);
Application接口定义了一些平台相关的功能,进行不同实现,还看到了public Preferences getPreferences(String name);,这可以直接在libgdx中使用android的preference.
所以,用libgdx的时候,只有一些很基本的平台相关功能libgdx进行了实现,大多数需要我们自己写的,定义一个接口,也很容易的~.
- libgdx中延迟加载资源文件
- Libgdx AssetManager资源加载
- libGDX中AssetManager加载不到资源的解决办法
- libgdx异步加载图片资源
- (libgdx小结)资源加载器
- Javascript中延迟加载js文件
- Spring 中加载资源文件
- Spring 中加载资源文件
- Spring 中加载资源文件
- XCode中加载资源文件
- 程序中加载资源文件
- 布局文件延迟加载
- 布局文件延迟加载
- 延迟加载js文件
- cell中延迟加载
- Android中关于布局文件延迟加载控件ViewStub
- Android中关于布局文件延迟加载控件ViewStub
- libgdx之加载obj(3D文件)
- function object研究之二
- 无法在Web服务器上启动调试
- 基于Silverlight的新浪微博客户端 - LightBus
- 获得人生中的成功需要的专注与坚持不懈多过天才与机会
- linux 线程 进程经典文章
- libgdx中延迟加载资源文件
- 面对生活和死亡乔布斯有这样一段名言
- word只读密码破解解决办法
- C++实现的委托机制(2)
- Geoserver地图开发解决方案(一) 环境搭建篇
- Win32 Application和Win32 Console Application
- windows 2000XP API 中C++线程池编程实现异步数据插库
- 是谁?让它甘心做强大背后的幕后英雄
- 用VC实现抓图功能[转载]