实现
mruby是matz发布的专用于嵌入式场合的ruby实现,它很轻量,而且可以高度定制化,也很方便以mrbgem的方式编写C/C++扩展。
SDL是一个跨平台的多媒体抽象层。(还提供opengl上下文的一些初始化)
所以采用mruby+SDL来移植RGSS是一件很"理所应当"的事情。
以mruby作为脚本层(实际上它和标准cruby的实现差异还不小,而且有一些不太好处理的地方,比如两个整数的除法可以得出浮点数,这导致RGSS默认脚本当中有一些图片坐标会偏),用SDL进行窗口、渲染方面的管理。再利用opengl/opengl es的shader来实现RGSS的tone和color功能,就完成了大部分的工作。
Windows平台的表现
LLVM clang编译器编译,在不开启跳帧的情况下,在这个简单地图可以达到350FPS+
Android平台的表现
在mruby端我封装了关于访问键盘,触屏等信息的接口,因此虚拟按键和旋转屏幕等功能都可以在RGSS3游戏脚本内以插件脚本的方式实现。
游戏资源
目前的方式是,游戏所用到的资源压缩成zip包并且以incbin的方式内嵌进游戏程序内,ruby端的load_data方法、以及Bitmap的加载都可以访问到这里的内嵌数据。关于这一点,以后还会改进,重写File和IO部分。
测试apk下载(不定期更新)
链接:https://pan.baidu.com/s/1SetKNfhRb3BVry_1ETWYbQ 提取码:t6ve
暂无关于此日志的评论。