`
梁利锋
  • 浏览: 80459 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

点睛挖雷 PSP 1.0 版(For 3.xx)

阅读更多
  最近买了 PSP2000,从而也萌发了要写点儿 PSP 程序的想法,先去找了 PSPSDK,当然,这是一切的基础,而且,大牛们破解 PSP 而建立 PSPSDK 也非常厉害,不过,就是使用起来太底层,许多很零碎的事情都要自己处理,而且,编译的程序要每次到 PSP 上测试也很麻烦。

  于是,又找到一套整合了很多框架(如 SDL)的所谓一键式安装的 PSP 开发环境 TOPOC,而且也支持编译成 windows 程序,在 PC 上调试等等,不过,在 VS2008 上编译出错,印象较深的问题是,找不到 glaux.h 和 glaux.lib,google 了一下,说是在 VC 新版的 opengl 库中,已经取消了这个库,还有一些其他问题,后来找到 VC6,编译倒是不出错了,不过,只能编译出 1.5 核心的程序,而我的 PSP 不支持 1.5 核心。在 TOPOC 的主页 上,一路看下去,发现他们到最后反而推荐使用 JGE++,说是可以编译出 3.xx 的程序,而且可以使用硬件加速,同时也支持编译成 windows 程序,在 PC 调试。

  又找到 JGE++ 的主页,但是网上介绍的一个压缩包总是下载不到,按照网上 另一篇文章 中介绍的方法安装,终于成功。

  那篇文章中介绍的后面两个文件,可以不用下载。其中,src.rar 中是 bat 文件,原安装包中的 bat 其实不需要修改,文中介绍的修改方法,在 sh 之后才执行,所以并没有任何作用;另外那个模板文件,只是加了中文注释,意义也不是很大。

  这个环境安装成功后,在 VC2008 下编译还是有问题,后来发现是原有编译出的目标文件和 VC2008 的版本不同造成的,清除 JGE 项目,再重新编译,终于成功。编译自己的程序的时候,会遇到找不到 glaux.lib 的错误,在连接选项里忽略 glaux 即可,看来,JGE 里面其实没有用到这个库,只是礼貌性的连接进来而已。

  JGE 这套库确实不错,不过,在做挖雷的时候,发现显示位置不准确,后来编译出 PBP 文件到 PSP 上测试,反而没有问题,可能是 windows 版的计算上有误差吧。

  挖雷参考了我以前写的 Python 版挖雷的代码,这版代码比 DOS 版好一点儿,不过,现在看来,也是很多地方不合理,不过,我主要是为了体验 PSP 编程,倒也问题不大,只是关于显示部分,还是写了一个全局函数,几个全局变量,有点儿不爽。

  虽然是 windows 上测试,PSP 上部署,还是会遇到一些不同的地方。比如随机函数,在 pc 上运行的很好,在 psp 上就只产生 0,经过不断测试,发现是因为 PSP 版(gcc?) srand 不支持大于 RAND_MAX 的种子,而 RAND_MAX 是 0x7fff,看起来,这像是因为函数库从16位升级到32位而出现的问题,把 time 的结果对 RAND_MAX 取余,即解决这个问题。另外,如果增加了其它代码,不是 include 进来的话,需要自己修改 makefile 文件,把新代码名加入 OBJS 中才可以。

  因为有参考代码,游戏逻辑不用考虑,所以本来乐观估计,一晚上可以完成,不过,遇到这样那样的问题,还是花了两个晚上多一点儿,不过,之后应该就会轻松多了吧。

  目前游戏没有加音乐,25x12 65 颗雷,还不支持调节这个数值,它的难度和 windows 高级挖雷接近。按三角键则显示帮助页面,按 Select 截屏。以后可能考虑加入声音,级别选择,再加点儿动感特效什么的

  游戏在我的 PSP2000,3.71m33-4 上测试通过。下面是运行截图和软件包:
  • 描述: 运行截图
  • 大小: 50.6 KB
5
0
分享到:
评论
1 楼 梁利锋 2008-04-13  
发现当时Quick&Dirty编码时的一个问题,在帮助界面的时候,会频繁读盘,建议不要停留在帮助界面太久,特别是组棒。

这个问题在我这里已修正。其实当时这样写,是为了解决另外一个问题 —— 在Create函数中加载太多内容,则pc上运行正常,PSP上会花屏。

现在,增加一些新功能,比如打印剩余雷数、花费时间等的时候,这个问题又冒出来,现在不确定是真的不能在Create函数加载太多东西(其实也不多,2副图片,一个ttf字体而已),还是 JGE++ 在 PSP 部分的代码有 BUG...

相关推荐

Global site tag (gtag.js) - Google Analytics