答:不需要,只要把结构体变量定义成const常量就可以了。
4.88 游戏用了自带字库后,会额外占用多少内存?
答:这个跟游戏中使用的文字的数量有关,字符统计后每1000个字大概消耗8K内存。
4.89 MTK平台能打开的文件数目有限制吗? 答:有的。最大可以打开的文件数为20个。
4.90 mrc_bitmapShowFlip()如何画透明色?
答:第7个参数传BM_TRANSPARENT,第10个参数传对应的透明色。 A)把红色设置为透明色。
mrc_bitmapShowFlip(hBmp, 0, 0, 240, 240, 320, BM_TRANSPARENT, 0, 0, MAKERGB(255, 0, 0));
B)把红色设置为透明色,并左右翻转。
mrc_bitmapShowFlip(hBmp, 0, 0, 240, 240, 320, BM_TRANSPARENT | TRANS_MIRROR, 0, 0, MAKERGB(255, 0, 0));
4.91 请问mtk和spr都有多少种屏幕规格啊? 答:常见的屏幕版本有240x320、176x220、240x400。目前游戏一般只需要出mtk240、spr240、mtk176和mtk400四个版本即可。其它还有很多特殊屏幕尺寸的手机,因为出货量较少,一般不需要考虑。
4.92 mrc_bitmapLoad( 29, \这句话我再一个方法内执行很多次,就是不释放,内存会一直累加吗?还是始终在29的那个缓存内操作不产生额外的内存。
答:图片缓存在加载新的图片时,会释放原来的图片资源,所以多次调用,内存是不会累加的,不会产生额外的内存。
4.93 自带字库的字库生成工具中有个设置字号和一个设置big medium small,这两个有什么区别? 答:big、medium、small这三个对应代码中的三种字体大小MR_FONT_BIG、 MR_FONT_MEDIUM、MR_FONT_SMALL。这三个可以设置各自的字号大小和字体。比如根据需要,big可以设置为16号,楷体;medium设置为22号,宋体。
4.94如果绘制的字符不在字库范围了,是显示异常,还是程序直接死了? 答:不在字库范围内的字符,将显示空格。
4.95斯凯平台上面有没有类似MessageBox的提示框?这个函数,显示的Dialog是全屏的吗?有没有可以指定显示区域?能不能在弹出之后,在一定时间过后自动消失呢?
答:1、有的,可以用mrc_text.h里的mrc_platDialogNew函数创建。2、这个函数调用的是手机的本地UI的提示框,在模拟器上显示的是全屏,在真机上,不同的手机,显示不同的界面。3、不可以指定区域。4、不支持自动消失。
4.96模拟器支持声音吗?
答:支持。mrc_sound.h里部分函数在模拟器上不支持。
4.97注册不生成sid文件是哪里找原因啊?生成sid文件不是我程序里控制吧?换卡重新注册,程序应该在哪里控制? 答:sid不需要游戏自己生成,只需要在游戏注册时,用mrc_scoreConfirm进行收费的时候,第一个参数传PAY_MSG_REGISTER,函数就会在收费成功时自动生成这个游戏的sid文件。判断是否需要注册,只需要调用mrc_checkCharge即可,换卡时此函数返回MR_FAILED,会要求重新注册。
4.98程序在手机上显示的名称,能随着手机语言切换自动变吗?
答:海外版的游戏支持不同的手机语言,自动显示不同的游戏名称。目前国内的游戏,只能显示固定的游戏名称,不能自动切换。
4.99 我们平台如何读取文件?
答:从T卡读取文件用mrc_read函数;从MRP包里读取文件用mrc_readFileFromMrpEx或mrc_readFileFromMrp。mrc_readFileFromMrpEx读取的资源,程序需手动用mrc_free来释放。mrc_readFileFromMrp调用的资源,用mrc_freeFileData来释放。详细情况参考API说明文档和头文件注释。
4.100 为什么游戏中调用mrc_initDefaultChn,游戏就挂掉了?
答:检查一下,调用mrc_initDefaultChn 函数之前,是否已经调用initChargeOversea函数对计费模块进行初始化。
4.101 mrc_open,如果文件名是带路径的,且路径中的目录是不存在的,会不会把目录创建出来呢?
答:不会。用mrc_open打开带路径的文件时,必须先确保相关的目录已经存在。
4.102 mrc_c2u,这个函数内部需要申请内存,需要使用者释放内存吗? 答:是的,需要使用者手动释放,否则会造成内存泄露。
4.103 mrc_getLen函数能否在文件被打开时获取该文件的长度?
答:不能。mrc_getLen函数本身带有打开文件的操作,如果文件已打开,就会打开文件失败,造成获取文件长度失败。如果文件已打开,可以直借助mrc_tell函数来获取文件长度。先用“mrc_seek(file, 0, MR_SEEK_SET);”把指针移到文件头部,用mrc_tell获取指针位置,再用“mrc_seek(file, 0, MR_SEEK_END);”把指针移到文件末尾,再用mrc_tell获取指针位置,两个的差值就是文件的长度。
4.104 在模拟器上,我新建一个文件,缺省情况下会放到哪个目录? 答:跟MRP文件同一目录。但真机上会有不一样,默认会放在平台的根目录下,比方mythroad目录下。
4.105 斯凯的SDK支持响铃(手机内置铃声)吗? 答:不支持,目前没有提供相应的接口。
4.106支持播放MID的同时振动吗? 答:支持的。
4.107 MTK版本的游戏完全正常,SPR版本进入游戏,还没显示游戏主界面的时候,手机就自动重启,可能是什么原因?
答:请从以下几个方面对代码进行检查:
1、 工程文件里面,是否已经设置了bmp_mode=spreadtrum;
2、 如果游戏有资源文件加载的,而且里面有16位和32位的变量,需要进行大小端的转换; 3、 检查一下有没有内存越界,资源的意外释放,和读取资源失败而引起的操作空指针。