首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将一个端口洞穴故事(NXEngine)连接到本机客户端

如何将一个端口洞穴故事(NXEngine)连接到本机客户端
EN

Stack Overflow用户
提问于 2012-12-22 02:55:19
回答 2查看 880关注 0票数 0

因此,Native Client可以从浏览器运行C++代码,我知道NX Engine是从C++构建的,可以调整以在安卓上运行。那么,如果NX引擎可以运行Cave Story,理论上可以在本地客户端运行,那么如何让它工作并托管,以便用户可以在浏览器中访问页面和玩游戏?

EN

回答 2

Stack Overflow用户

发布于 2012-12-24 19:52:49

要将NXEngine移植到Native Client,您需要移植NXEngine本身(当然!)加上它的依赖项。让我们逐一考虑它们:

  • SDL已经移植了,但可以使用更新,因为该端口比它晚了几个版本。它驻留在http://code.google.com/p/naclports/source/browse#svn%2Ftrunk%2Fsrc%2Flibraries%2Ffreetype-2.1.10.

naclports社区存储库中(请参阅我关于freetype

  • freetype需要移植的说明,包括它的依赖项,据我所知,naclports已经移植并驻留在naclports中

移植到Native Client非常类似于移植到一个新的-在很多方面更像Linux-的操作系统。但是,有一些重要的区别:

本地客户端的“操作系统”

  • 是,或PPAPI,提供对浏览器功能的访问的一组API。主要的移植工作通常是让您的代码使用Pepper API打开文件、显示图形、播放声音等(SDL使输入、声音和图形变得更容易)。要打开文件,人们通常使用nacl_mounts,这是一个包装了Pepper file API的库,这样就可以将应用程序的HTML5网络存储或URL作为文件系统挂载到Web上,然后使用熟悉的fopenfread等。从Pepper 25开始,nacl_mounts的一部分包含在NaCl开发工具包中。
  • 本地客户端模块不能使用本地操作系统调用,也没有访问主机文件系统的权限。这是出于安全原因,并确保portability.
  • There目前在Pepper中不是非实验性的字体应用程序接口。因此,所有字体渲染都必须在您的代码中完成,任何.ttf文件都必须作为应用程序的一部分提供,因为本地客户端将无法访问.ttf。出于安全原因,主机系统上的文件。

Chrome/Pepper25推荐:过去,Pepper API调用只能从主线程进行。这需要对游戏和其他多线程程序进行重大重构,这些程序被设计为在一个线程上渲染,在另一个线程上播放音乐。从Chrome 25及更高版本开始,此限制将不复存在。有关详情,请参阅https://developers.google.com/native-client/dev/peppercpp/classpp_1_1_message_loop。以Chrome25或更新版本为目标,从而使用NaCl SDK的Pepper25版本,可能会减少这类应用程序的重构工作量。

在网页上运行本地客户端的这个问题提到,你可以“访问网页并在浏览器中玩游戏”。重要的是要知道,目前只有Chrome支持Native Client。当前一代的Native Client和即将推出的Portable Native Client之间也有一个重要的区别,前者需要将Web应用程序放在Chrome web Store中才能使Native Client工作,后者将允许在任何网页上显示Native Client内容。为了让网页上的访问者能够以最少的弯路使用当前一代的基于氯化钠的应用程序,Chrome web Store内联安装(参见https://developers.google.com/chrome/web-store/docs/inline_installation)可以避免用户去Chrome Web Store的需要。

关于 naclports**:** naclports的说明: Native Client是一个基于社区的存储库。它包含几个库和以前的端口。您可以在http://code.google.com/p/naclports/source/browse/trunk/src/libraries/上查看naclports中的库列表。虽然它包含了如何进行移植的有用示例,但naclports并不适合胆小鬼,因为它经常崩溃,而且-考虑到它是在志愿者/尽最大努力的基础上维护的-可能需要时间来修复。

附加提示:*在这个答案中有一些指向指南的附加提示和提示:Google Chrome Extension using NaCL with an external library

票数 1
EN

Stack Overflow用户

发布于 2013-06-08 05:21:33

你问的问题很有趣,我已经移植了!它真的不需要太多的改变(但我还是做了很多改变)。

我已经有一段时间没有尝试重新编译它了,所以它可能已经坏了。也许我会花点时间试着让它再次工作。:)

你可以在http://github.com/binji/nacl-nxengine上找到它

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13995636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档