做游戏,地图太大,加载耗时间太长,有什么办法吗? 地图是1000*800的,太大了,有什么办法吗?我用Bitmap.CreatBitmap()函数来截一块地图画,用的时间也长。怎么解决啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.现在是一张大的地图。2.分时分区加载是对的。那个“区”怎么分出来,用CreatBitmap函数,每次划分一部分地图出来,时间上还是不少。 1、用游戏框架,cocos 2d有android 版的2、自己手写不现实。不要以为只是简单的载入一张图片而已。背后涉及到很多东西。首先,你加载进去是放在哪块内存里?paint 的时候效率高不高?用普通的ui绘图方式根本不现实。其次,内存占用过高,很有可能oom。1000*800 = 1024*1024 *4 = 4m,你一个进程只有16m。最后,游戏的地图是用一个个小的tile合成的,并且一般是多层地图,直接一张载入是很不现实的事 我用 Runtime.getRuntime().freeMemory()查看内存,内存剩余为80 00 00,总内存为33 46 416 ,这样的结果,是内存不足引起的执行函数慢吗?其实,就是执行Bitmap.CreatBitmap(bm,x,x,x,x)时间太长,超过了100ms,其中bm是一个较大的图,1024*256的,大小是200k,截取480*320的图,就是这里的问题,有办法吗? 1、android没有swap机制,所以内存不足不会让程序运行慢(不考虑gc影响的话),但有可能让程序崩溃2、做游戏的话,对性能要求很高,所以很多时候,并不仅仅是调API这么简单。尽管你能实现功能,但不代表这个功能就是可用的。如你这个例子,Bitmap.CreatBitmap如果是在虚拟机中执行的话,那么它可能需要在虚拟机中分配内存,拷贝,然后再调用native方法,最后写到framebuffer。而如果直接用native方法的话,虽然少掉了从虚拟机到native这步开销,但也快不到哪去。而用cocos 2d的话,用opengl,载入纹理后,你的裁切,生成,这些都是在显卡中装配,渲染的,速度当然快了很多倍了 网上找了一个是apk的文件,这东西怎么用啊? 这玩意是iphone上做2D游戏的框架,android版是它的移植,包括java版和cpp版 不过cpp版貌似有些不兼容文档的话你可以搜一下,很多人用这个的 无法从android market上下载apk文件了? webview中的页面点击输入框页面会自动放大 webview加载flash的问题 pin码,输入3次之后,没有输入PUK码框界面 Android界面分层布局问题 请教在屏幕旋转时如何让某一个控件TextView的位置保持不变 android客户端发送参数给服务端,服务端接受不到 请问入门的app+后端学习资料 初学者学习mars老师的android 在sqlite这一课调试运行问题 求一份android蓝牙耳机录音的源码或思路 求助:PopupWindow在自定义布局里面动态添加控件问题 请问一个email转发的问题
1.现在是一张大的地图。
2.分时分区加载是对的。那个“区”怎么分出来,用CreatBitmap函数,每次划分一部分地图出来,时间上还是不少。
2、自己手写不现实。不要以为只是简单的载入一张图片而已。背后涉及到很多东西。首先,你加载进去是放在哪块内存里?paint 的时候效率高不高?用普通的ui绘图方式根本不现实。其次,内存占用过高,很有可能oom。1000*800 = 1024*1024 *4 = 4m,你一个进程只有16m。最后,游戏的地图是用一个个小的tile合成的,并且一般是多层地图,直接一张载入是很不现实的事
其实,就是执行Bitmap.CreatBitmap(bm,x,x,x,x)时间太长,超过了100ms,其中bm是一个较大的图,1024*256的,大小是200k,截取480*320的图,就是这里的问题,有办法吗?
2、做游戏的话,对性能要求很高,所以很多时候,并不仅仅是调API这么简单。尽管你能实现功能,但不代表这个功能就是可用的。如你这个例子,Bitmap.CreatBitmap如果是在虚拟机中执行的话,那么它可能需要在虚拟机中分配内存,拷贝,然后再调用native方法,最后写到framebuffer。而如果直接用native方法的话,虽然少掉了从虚拟机到native这步开销,但也快不到哪去。而用cocos 2d的话,用opengl,载入纹理后,你的裁切,生成,这些都是在显卡中装配,渲染的,速度当然快了很多倍了
网上找了一个是apk的文件,这东西怎么用啊?
文档的话你可以搜一下,很多人用这个的