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一步步来就行上交大的创客空间也有现成的系统下载驱动怎么找呀。



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



Megalayer美国服务器CN2优化线路30M带宽3独立IP限时月299元

Megalayer 商家算是比较新晋的国内主机商,主要方向是美国、香港、菲律宾等机房的独立服务器为主,以及站群服务器和显卡服务器。同时也有新增价格并不是特别优惠的VPS云服务器。上午的时候有网友问问有没有CN2线路的美国独立服务器的,这里我推荐他选择Megalayer看看,目前也是有活动截止到月底的。Megalayer 商家创办2年左右时间,如果我们初次使用建议月付体验。目前在进行且可能截止到6月...

wordpress公司网站模板 wordpress简洁高级通用公司主题

wordpress公司网站模板,wordpresss简洁风格的高级通用自适应网站效果,完美自适应支持多终端移动屏幕设备功能,高级可视化后台自定义管理模块+规范高效的搜索优化。wordpress公司网站模板采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器: IE 6+(以及类似360、遨游等基于IE内核的)、Firefox、Google Chrome、Safari、Opera等;同时...

HostKvm四月优惠:VPS主机全场八折,香港/美国洛杉矶机房$5.2/月起

HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。本月商家针对全场VPS主机提供8折优惠码,优惠后美国洛杉矶VPS月付5.2美元起。下面列出几款不同机房VPS主机产品配置信息。套餐:美国US-Plan0CPU:1cores内存:1GB硬...

sourceforge.jp为你推荐
站酷zcool北京站酷网络科技有限公司怎么样?咏春大师被ko练了十几年的 “ 咏春高手”~~被练一年空手道的轻易打败,难道如今的国术就像国足,不堪一击~~百度商城百度商城知道在哪个地方,怎么找不到啊access数据库access数据库主要学什么haokandianyingwang谁给个好看的电影网站看看。5xoy.com求个如月群真汉化版下载地址www.vtigu.com如图,已知四边形ABCD是平行四边形,下列条件:①AC=BD,②AB=AD,③∠1=∠2④AB⊥BC中,能说明平行四边形抓站工具抓鸡要什么工具?bbs2.99nets.com让(bbs www)*****.cn进入同一个站partnersonline电脑内一切浏览器无法打开
国外网站空间 budgetvm 域名商 enom 堪萨斯服务器 国外服务器网站 华为云主机 新站长网 彩虹ip 华为网络硬盘 福建天翼加速 cdn加速原理 hkt 多线空间 360云服务 cloudlink 游戏服务器出租 supercache 卡巴斯基官网下载 apnic 更多