sourceforge.jpIntel Galileo板子怎样能同时make并且用USB client接口连接电脑

sourceforge.jp  时间:2021-02-04  阅读:()

关于安卓的开发和移植

登录 e.jp,就可以获得关于标准版ONS的详细介绍与各版本下载路径。

至于ONS-Android,则是由ONS作者提供的,完全实现了ONS功能的,专门用于跑在Android平台的ONS版本。

如果您要在Android上进行NS游戏移植,首先就离不开ONS-Android的下载与编译。

ONS-Android的编译: ONS-Android的编译,仅需要如下步骤就可以做到。

1 下载SDL的Android版扩展库 由于标准版SDL源码包中尚未包括Android本地化支持,所以我们需要单独下载Android版SDL源码包,才能在Android环境中正常编译与运行SDL程序。

事实上,所有想使用SDL以C/C++方式开发Android游戏的用户,也会需要这个SDL运行库的支持。

下载地址: / (PS: ONScripter-Android内置已是这个运行库,不必真正下载,此处仅说明来源)。

2 下载Android版ONScripter 下载地址: e.jp/android/onscripter_android.tar.gz 由于ONS-Android采用JNI方式,进行C/C++部分与Java部分的交互,因此下载后的源代码也就同时包含了java(功能集中在游戏载入,界面初始化与JNI调用)与纯C(sdl-android支持库)两大部分的源码。

不过,真正解释执行NS脚本的ONScripter本体(C++实现)这时却并没有包含在内(估计是作者考虑到ONScripter核心代码是所有平台共通的,才没有直接放入ONS-Android当中)。

现在,我们还需要下载ONScripter的核心源码部分,才能真正进行ONS-Android编译。

3 下载标准版ONScripter 下载地址(也可选其它版本): e.jp/onscripter-20110619.tar.gz 好了,编译ONS-Android的要素全部齐备了。

现在,将最后下载的ONS核心源码解压,并放入onscripter_android的jniapplication文件夹下(建议解压时不要改名,因为 ONS的Android.mk配置里默认就是编译onscripter*下文件,改名很可能导致找不到目标文件(除非您重写了Android.mk配置))。

这时,我们只要通过NDK编译onscripter_android项目,就能立刻得到相关的so文件了(累计将编译出九个文件,其中只有libapplication.so为ONS运行库,其余为SDL支持库),相当之简单吧? 下图为通过Cygwin在Windows中编译ONS的画面。

可以说,只要系统环境设定正常,原始ONS-Android配置已可保证编译成功。

假如在编译时提示找不到某某文件,则说明环境变量中缺少必要的系统支持库路径,并非onscripter_android源码不全,请自行在Android.mk添加相关路径或者修改Cygwin环境配置,具体请参考NDK开发文档或Cygwin使用文档(当然,直接Ubuntu编译最简单)。

编译成功后,获得的so文件列表: 有了so支持库与Java代码,任何稍有Android(或Java)开发经验者,都能轻易将NS游戏运行于Android系统之上。

ONS-Android的汉化问题: 出于众所周知的原因,ONS-Android默认并不支持中文编码(它是日本人做的)。

这样的设计,在使用原版ONS-Android运行日文游戏时并不会有太大问题(只要该游戏没有调用第三方插件,没有使用额外API)。

但是,一旦我们想要让它跑一些经过汉化的中文编码游戏呢?显而易见,肯定会造成乱码的出现。

所以,如果我们想要ONS-Android能够正常地进行中文游戏显示,在进行ONS-Android编译时,便需修改其部分代码。

更准确地说——是修改位于ONS核心包下的sjis2utf16.cpp文件来解决这一问题。

总体来讲,ONS的字符解码过程并不复杂,sjis2utf16.cpp中仅有initSJIS2UTF16(初始化解码表到sjis_2_utf16这一数组中)、convSJIS2UTF16(转化日文编码SJIS为UTF-16编码)、convUTF16ToUTF8(转化UTF-16为UTF-8编码)这三个函数在起作用。

而ONS的所有字符解码部分也会经由调用convSJIS2UTF16和convUTF16ToUTF8这两个函数产生作用(注意,initSJIS2UTF16是sjis_2_utf16变量初始化赋值时使用的函数,仅会在ONS启动时调用一次)。

知道了这些,解决汉化问题就变得非常简单,只要根据现有的ONS解码规则,将其sjis_2_数组中的SJIS日文编码表转化为我们需要的中文编码表(GBK也好,Big5也好,原理都一样,一个指定编码对应一个相对的UTF-16编码,然后以二维数组形式保存),就能够非常轻松的实现 ONS中文解码,甚至不需改写任何逻辑代码(如果有某些字符需要特殊过滤,也可以修改convSJIS2UTF16和convUTF16ToUTF8这两个函数进行拦截)。

编码表较大,下文有相关下载地址。

当然,如果我们想保留原版sjis2utf16.cpp内容也没问题,大可以新建一个gbk2utf16.cpp之类的文件,让两套解码器并行存在,按需求进行切换(比如想根据手机环境自适配字符解码器)。

怎么做呢?粗读ONS源码我们可以发现,它实际调用到字符解码器的部分,仅集中于DirectReader.cpp和 ONScripterLabel.cpp、ONScripterLabel_text.cpp这三个源文件当中。

具体的说,在于DirectReader 中的convertFromSJISToUTF8函数(其中同时调用了解码器的convSJIS2UTF16与convUTF16ToUTF8函数。

PS:该文件中还有convertFromSJISToEUC函数,是给资源文件名解码的,如果文件名中没有稀奇古怪字符的话原则上可以忽视不管,如果有的话也需要进行适当修改),以及ONScripterLabel_text.cpp中的drawGlyph函数(调用convSJIS2UTF16)和 ONScripterLabel中的initSDL函数(调用initSJIS2UTF16)。

如果想自适配解码器,只需创建出相关的解码用函数(放在 gbk2utf16.cpp、big52utf16.cpp随便什么中原理都一样,改个编码表而已),继而通过最简单的if……else……判定即可(如果想根据编译环境判定,直接#if defined也行)。

总之,ONS中文解码并不是什么复杂的问题,汉字编码表可以去 查询,或者参考Emacs项目提供的map文件(下载一个Emacs,解压后它的etc/charsets文件夹下全是后缀为.map的编码表)。

还有,很久以前有人用google code发布过ONS的gbk解码版本( /svn/trunk/),有需要的朋友可以从svn下载过来参考。

ONS-Android的运行机制: 单从Java编程角度来说,ONS-Android的结构可谓非常简单,开放给用户的仅有Audio.java、DataDownloader.java、 GLSurfaceView_SDL.java、ONScripter.java、Video.java这五个Java文件而已(因为具体实现是 C/C++的)。

其中Video.java最为重要,它包含有DemoRenderer和DemoGLSurfaceView两个子类,这不单是ONS- Android的渲染核心,而且包含了nativeInit, nativeInitJavaCallbacks, nativeDone,nativeResize,nativeMouse,nativeKey等六个jni接口。

其中最主要的接口是 nativeInitJavaCallbacks以及nativeInit,只有执行了这两个jni函数,才能真正启动ONS(本质上是先启动SDL框架,附带唤醒ONS)。

而执行nativeInit函数时需要注入的地址字符串,默认来源于 ONScripter类下的gCurrentDirectoryPath这个静态变量。

不管我们往gCurrentDirectoryPath中放入什么字符串,默认情况下ONS都会按照这个字符串去读取/保存游戏资源(如果不能找到该路径,则ONS会立即崩掉)。

至于其它,nativeDone是关闭SDL(由于ONS依赖于SDL,所以这些操作实际上都会先执行SDL部分,然后才转到ONS部分,以下同),nativeResize是改变SDL画面大小,nativeMouse触发SDL屏幕操作,nativeKey触发SDL键盘操作,皆属基础操作,并没太多好讲解的。

PS:上述部分jni源码位于onscripter_androidjnisdlsrcvideoandroid文件夹下,如果要修改Java类名或接口名,请注意同时修改相关C代码。

而 ONS-Android的启动用Activity是ONScripter类,其中真正调用ONS运行的只有runSDLApp这个私有函数,至于 runLauncher及runDownloader函数一者为要求游戏用户选择ONS资源所在路径,一者为通过网络下载ONS游戏资源,都只会在 runSDLApp执行前调用,也不会实际触发jni接口(只有runSDLApp触发jni操作)。

所以,如果您不想让游戏用户使用您的APK启动其它人提供的游戏资源(也就是不想被人当模拟器用),则可以删除runLauncher函数,或者固定gCurrentDirectoryPath变量中路径字符串即可。

再者,游戏初始化后默认显示于画面右侧的仅仅是Java编码的ONS操作按钮(如ESC、Skip 这些),它们仅会通过JNI方式调用相应的SDL API,而不会真正影响C/C++实现部分。

因此,如果您需要改变它们的显示位置,或者进行删除、修改这些按钮的操作,乃至用其它方式彻底替代它们(比如将相关JNI调用放入Menu中,按下菜单键时才起作用),都只需修改相关Java代码即可,无需改变任何C/C++部分。

另外,通过解读源码我们可以获悉,在ONS-Android初始化运行时,有三种文件必不可少。

一是脚本文件,它可以命名为0.txt、00.txt、nscr_sec.dat、nscript.___、nscript.dat这五种名称中的任意一种(后三种都属于NS的dat文件包,需要通过工具打包,网络有下载),但除此之外的名称一概不认,没有则无法运行游戏。

二是游戏资源文件,也就是NS中使用的arc.nsa,游戏中使用的音频与图像文件强制要求打成此包(NS提供有打包工具),并且保持此名称不变,否则ONS还是不认。

三是default.ttf,也就是字库文件,由于ONS-Android默认情况下不能使用Android字库,所以此文件必须存在,并且正常可读(必须能够被SDL识别),否则游戏会强制退出(没错,如果字库不存在或者读取异常,ONS直接就崩了~连错误都不报~)。

有了上述三种文件,ONS才能在 Android中正常运行。

最后,虽然AVG游戏通常需要较大的音频与图像文件支持,Android版ONS默认要求将游戏资源文件保存于SD卡中。

但经实测发现,如果将gCurrentDirectoryPath设定为其它可读写目录,只要上述三文件正常无误,ONS-Android一样能正常运行(比如APK的Cache文件夹)。

所以,如果我们想对游戏资源作一些手脚(在内存而非SD卡中进行游戏什么的),完全可以根据此特性入手。

ARtoolkit可以使用unity3D来做吗?

ARtoolkit和unity3d都是属于一种3D引擎,unity3d也可以做3D仿真的,我们公司目前就是用unity3d做工业仿真。

Intel Galileo板子怎样能同时make并且用USB client接口连接电脑

可以装debian的 e.jp/projects/_galileodebian/ 用VirtualBox导入那个SDK里的系统 按readme一步步来就行上交大的创客空间也有现成的系统下载驱动怎么找呀。



真想找个现成的系统直接拷进去就好了。



台湾CN2云服务器 2核2G 5M 5IP 台湾物理服务器 E5x2 64G 20M 5IP

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

IMIDC(rainbow cloud):香港/台湾/日本/莫斯科独立服务器特价,闪购大促销,最低30usd/月起

imidc怎么样?imidc彩虹网路,rainbow cloud知名服务器提供商。自营多地区数据中心,是 Apnic RIPE Afrinic Arin 认证服务商。拥有丰富的网路资源。 在2021年 6.18 开启了输血大促销,促销区域包括 香港 台湾 日本 莫斯科 等地促销机型为 E3係,参与促销地区有 香港 日本 台湾 莫斯科 等地, 限量50台,售罄为止,先到先得。所有服务器配置 CPU ...

RAKsmart 黑色星期五云服务器七折优惠 站群服务器首月半价

一年一度的黑色星期五和网络星期一活动陆续到来,看到各大服务商都有发布促销活动。同时RAKsmart商家我们也是比较熟悉的,这次是继双十一活动之后的促销活动。在活动产品中基本上沿袭双11的活动策略,比如有提供云服务器七折优惠,站群服务器首月半价、还有新人赠送红包等活动。如果我们有需要RAKsmart商家VPS、云服务器、独立服务器等产品的可以看看他们家的活动。这次活动截止到11月30日。第一、限时限...

sourceforge.jp为你推荐
百度关键词价格查询百度推广关键词怎么扣费?rawtools闪迪32Gsd卡,无法格式化,显示只有30M,并且是raw格式。如何恢复?百花百游“百花竟放贺阳春 万物从今尽转新 末数莫言穷运至 不知否极泰来临”是什么意思啊?51sese.com谁有免费电影网站www.zjs.com.cn怎么查询我的平安信用卡寄送情况se9999se.comexol.smtown.com广告法广告法有什么字不能用www.idanmu.com万通奇迹,www.wcm77.HK 是传销么?baqizi.cc讲讲曾子杀猪的主要内容!www.15job.com南方人才市场有官方网站是什么?
广州主机租用 vps虚拟服务器 域名备案号查询 securitycenter godaddy主机 idc测评网 免费smtp服务器 dd444 京东商城0元抢购 帽子云 宁波服务器 softbank邮箱 idc是什么 如何安装服务器系统 国外视频网站有哪些 根服务器 双线asp空间 带宽租赁 vul 湖南idc 更多