1. x86上运行速度流畅,但到真机和模拟器上,速度都比较缓慢
    有两个游戏,scavenger和another pacman出现了同样的问题
    但是其他游戏,比如kobodl就没有出现类似的问题
    所以,scavenger游戏设计本身可能存在着若干毛病,需要去研究的
  2. pelya提供的SDL目前支持的audio数据格式有限,对于AUDIO_U8,它就无能为力,而scavnger就使用了这种格式,这也是在移植scavenger过程中碰到的另外一个问题
  3. 另外一个是关于pacman-arena,该游戏是用openGL做的,在台式机上可以run,但要移植至Android上就有点麻烦,因为Android用的是openGL/ES,是个简化版本,有些API接口支持的参数有限,比如glBegin,openGL/ES就不支持GLQuads,但openGL却可以;所以要porting这些codes的话,就需要想法子绕过去
  4. pelya提供的SDL目前也不支持JoyStick,但有些game call SDL_Init时却要求JoyStick,也会引起runtime error
  5. SDL类的game一般都有个data目录,并且要求编译时通过-DDATADIR=”/data”的形式编译source code,这样的话如果DATADIR后的路径名最后是否有字符/,也会引起runtime error,因为有些game假设该路径名最后是有字符/的
  6. 还有一个问题是关于atexit的,在linux或其他平台下,atexit可以注册一个函数,当main结束时,这个函数就会被调用;这中手段一般会被game采用来call SDL_Quit,但Android下port game,main函数不再具备linux下application的那种地位,所以解决这个问题的手段之一是显示的call atexit注册的那个函数。
  7. 另外一个大问题是,pelya提供的SDL及其java codes里对Pause/Resume/Stop的处理失当,导致的问题就是当HOME key按下时,application会退出;当来电时,application会退出;当锁屏时,application会退出;
    • 锁屏时退出的问题,可以用小技巧绕过
    • HOME key和来电时由于涉及到onStop的处理,目前还找不到办法可以绕过
  8. 另外一个小问题也是关于pelya提供的SDL包的,它的一个文件里的Android_VideoQuit对两个指向同一地址的指针释放两次,导致process crash;已fix
  9. 今天(2010/08/24,jooleem)碰见一个问题,即修改某个.h文件后,refresh再重新compile,其他依赖于该.h文件的.c文件居然没有重新编译,这个问题的原因还得仔细查找;先记录下来,以后再看看。
    初步分析是这样的: Android自带的build system依靠Android.mk中的LOCAL_SRC_FILES定义来决定哪些src files应该被compile,之后还要判断这些src files depends on哪些头文件;对于某些src files,这种依赖关系能建立起来(比如UI/aboutwindow.cpp和fontmanager.h),而对于某些files,这种依赖关系则不能成功建立(比如engine/engine.cpp和filenames.h),所以就出现了这种情况。
    至于为什么有些行,而有些不行,还待研究;一句话,可能和Android的build system有关系。
  10. arm下的c++目前暂不支持assert,所以assert(fun())中的fun()不会被执行。
Advertisements