内容发布更新时间 : 2025/5/24 13:25:28星期一 下面是文章的全部内容请认真阅读。
3.4 bmp图片宽高注意事项
1、SDK对图片的宽度有限制,不能超过1000个像素大小,否则图片会出现加载失败,对图片的高度没有限制。
3.5 SPR平台游戏音乐使用问题 1、由于SPR平台对音乐支持不完善,游戏过程中播放音乐不流畅,因此开发者需要注意,SPR平台游戏不需要添加音乐播放功能,游戏代码中可以通过MR_SPREADTRUM_MOD宏来区分MTK和SPR平台,当是SPR平台的时候,MR_SPREADTRUM_MOD该宏会被自动定义的。
3.6 C语言标准库函数使用问题
1、SDK中封装了常用的C语言标准库函数,例如memcpy等,详细函数可以查看 mrc_base.h里面,如果开发者需要是否其他的库函数,那么需要先联系斯凯工程师,不是随便使用SDK中没有封装的函数,否则会出现异常。
3.7 mrc_exit函数使用注意事项
1、SDK中通过调用mrc_exit函数退出游戏,当调用该函数以后,游戏不会马上退出,而是需要执行完当前函数才会退出的,因此需要在调用mrc_exit函数以后再添加return语句,举例如下:
void Test(void) { //?
mrc_exit();
return;//这里必须调用return,否则后面的语句会继续被执行 //other }
3.8 本地UI窗口创建使用注意事项
1、SDK提供了简单的窗口系统管理,在mrc_win.h里面,
当开发者在mrc_winNew里使用了本地UI的相关资源,那么如果想在当前窗口之上创建新的窗口,那么就不能再使用mrc_winNew来创建新窗口,必须使用mrc_platWinNew函数来创建新的窗口,否则窗口事件函数无法正常收到按键和触摸屏等事件。
四 常见问题原因和解决方法
4.1 游戏中为什么会出现花屏?有什么解决方法?
1、游戏中当图片加载失败的时候,开发者如果没有对这种情况进行判断,而继续绘制图片,那么就会出现花屏现象;
2、解决花屏问题,需要查找图片加载失败的原因,通常图片加载失败的原因有如下几种: 1传入的参数错误;
2 mrp包里面不存在相应的文件; 3 内存不足;
4 图片宽度超过1000个像素大小; 因此,针对上述原因,解决方法如下:
1 检查代码,确定函数调用时候传入的参数,修改错误参数; 2 将要加载的图片打包到mrp文件里面; 3 当出现内存不足的时候,一种情况是同一时间加载到内存的图片太多了,没有足够内存了,开发者可以通过写文件,把当前的剩余内存空间大小保存下来;另外一种情况是游戏代码有问题,例如出现数组越界、释放非法指针,把内存空间搅乱了,就需要查看游戏代码了; 4 图片宽度超过限制的,只能修改图片。
4.2 游戏中为什么会出现死机和重启?有什么解决方法?
1、当游戏代码中出现死循环、内存越界、使用野指针和空指针时候,手机就会出现死机或者重启等严重异常现象;
2、死机和重启的解决方法:
1 查找代码中所有数组,确保使用过程中不会出现数组越界问题;
2 查找代码中所有malloc地方,对malloc的返回值必须进行判断,当malloc失败的时候,必须进行处理,不能简单继续执行,通常是调用mrc_exit退出游戏,并且在mrc_exit函数后面,调用return退出当前函数;
3 查找代码中所有的free的地方,free的对象必须是合法的地址; 4 查找代码中for循环,确保循环是可以退出的,不会进入死循环;
5 查找代码中所以内存操作函数,如memcpy、memset,确保调用该函数的时候,内存地址是合法的,并且长度参数没有越界;
6 查找代码中