一种在网络游戏客户端中内置网络浏览器的系统及方法

文档序号:8361184阅读:621来源:国知局
一种在网络游戏客户端中内置网络浏览器的系统及方法
【技术领域】
[0001] 本发明涉及一种网络通信领域,尤其是一种在网络游戏客户端中内置网络浏览器 的系统与方法。
【背景技术】
[0002] 目前市面上在网络游戏客户端内置浏览器的功能,且大致可以分为两类:
[0003] -类是使用微软的IE控件或者类似技术,在游戏主渲染外提供一个或多个浏览 器窗口显示网页。在此类方案中,浏览器窗口于游戏渲染本质上是脱离的,浏览器窗口无法 与游戏中的界面场景等产生正确的遮挡关系。浏览器窗口看起来和实际上,都是覆盖在游 戏界面上的另一层。游戏界面的操作可以产生对浏览器的单向通知,但浏览器无法反向通 知游戏客户端。
[0004] 另一类方案是将基于webkit内核的浏览器嵌入到游戏中主渲染逻辑中,提供一 个或多个游戏窗口显示网页。在此类方案中,浏览器窗口作为游戏界面的一部分,能够与游 戏场景和其它界面产生正确的遮挡关系。与前一种方案类似的是,游戏界面的操作可以产 生对浏览器的单向通知,但浏览器无法反向通知游戏客户端。
[0005] 以上现有的两类浏览器内置方案,均只能实现从游戏客户端到浏览器的单向简单 通信,比如执行页面跳转指令等操作,而浏览器无法直接向游戏客户端进行反向通讯,一次 游戏客户端无法对浏览器操作结果进行直接的响应和反馈。
[0006] 因此,如何开发出一种可以进行双向通讯的网络游戏客户端中内置网络浏览器的 方案,是目前本领域的技术人员需要解决的一个问题。

【发明内容】

[0007] 本发明针对现有技术的不足,提供一种网络游戏客户端与网络浏览器可以进行双 向通讯的系统与方法。
[0008] 本发明主要通过下面技术方案实现:一种在网络游戏客户端中内置网络浏览器的 系统,包括游戏主逻辑模块以及浏览器内核模块,在所述浏览器内核模块与所述游戏主逻 辑模块之间增设有一脚本与游戏逻辑交互模块;
[0009] 所述脚本与游戏逻辑交互模块用于将接收到的对应浏览器网页脚本信息转换为 游戏主逻辑模块可以识别的信息;以及
[0010] 用于将所述游戏主逻辑模块发送的游戏逻辑代码对应转换为网页浏览器内核模 块识别的信息。
[0011] 作为优选的,所述浏览器内核模块中嵌入有脚本引擎模块,所述脚本引擎模块用 于将网页对应的脚本进行解析;
[0012] 所述脚本引擎模块与所述游戏主逻辑模块相连接,并将所述解析到网页脚本信息 发送给游戏主逻辑模块。
[0013] 作为优选的,所述脚本引擎模块还与所述脚本与游戏逻辑交互模块相连接;
[0014] 所述脚本引擎模块,用于将解析到的所述网页的脚本解析发送给所述脚本与游戏 逻辑交互模块;
[0015] 所述脚本与游戏逻辑交互模块,还用于在游戏代码与javascript之间进行数据 类型适配和游戏代码与javascript之间的调用转发;
[0016] 所述游戏主逻辑模块,用于根据接收到的对应浏览器网页脚本信息的游戏代码, 调用对应的浏览器信息。
[0017] 作为优选的,所述脚本与游戏逻辑交互模块,还用于在游戏代码与javascript之 间进行数据类型适配和游戏代码与javascript之间的调用转发,具体包括:
[0018] 所述数据类型适配是通过一个双向的类型适配映射表实现,所述调用转发则通过 一个调用映射表来实现。本发明还提供一种在网络游戏客户端中内置网络浏览器的方法, 包括以下步骤:
[0019] 接收浏览器内核模块发送的对应网页中的脚本信息;
[0020] 脚本引擎模块解析接收到的脚本信息;以及
[0021] 将解析网页中的脚本信息发送给脚本与游戏逻辑交互模块;
[0022] 所述脚本与游戏逻辑交互模块负责网络脚本和游戏代码之间的交互,所述交互包 括:在本地游戏代码与网络脚本语言javascript之间进行数据类型适配和所述本地游戏 代码与所述网络脚本语言javascript之间的调用转发;
[0023] 所述游戏主逻辑模块根据接收到的对应网页脚本信息的游戏代码,调用转发对应 的网页浏览器信息。
[0024] 作为优选的,所述在本地游戏代码与网络脚本语言javascript之间进行数据类 型适配和所述本地游戏代码与所述网络脚本语言javascript之间的调用转发,具体包括:
[0025] 所述脚本与游戏逻辑交互模块将接收到的脚本信息转换为游戏主逻辑模块识别 的游戏代码,并发送给游戏主逻辑模块;或者
[0026] 所述脚本与游戏逻辑交互模块通过获知所述本地游戏代码转换为字符串形式调 用转发网络脚本模块。
[0027] 更佳的,所述在本地游戏代码与网络脚本语言javascript之间进行数据类型适 配和所述本地游戏代码与所述网络脚本语言javascript之间的调用转发,具体包括:
[0028] 所述数据类型适配的工作主要是通过该双向类型适配映射表实现;以及
[0029] 所述调用转发工作是通过该双向符号调用映射表实现的。
[0030] 较佳的,所述脚本与游戏逻辑交互模块将接收到的脚本信息转换为游戏主逻辑模 块识别的游戏代码,并发送给游戏主逻辑模块,具体包括:
[0031] 所述网络脚本模块通过所述脚本与游戏逻辑交互模块发起指定的本地游戏代码 调用,并给出调用参数;
[0032] 所述脚本与游戏逻辑交互模块通过查询所述调用映射表,确定调用目标所在的本 地游戏代码模块及其函数名称,然后根据所述数据类型适配映射表,将所给出的参数依次 转换为对应的本地游戏代码类型数据;
[0033] 所述脚本与游戏逻辑交互模块模拟标准程序语言的函数调用过程,将转换后的参 数压入调用栈,然后跳入给定的函数;
[0034] 在函数执行完成后,交互模块根据调用映射表中记录的返回值信息,模拟标准程 序语言的函数调用过程,从栈上取回返回值;
[0035] 所述脚本与游戏逻辑交互模块根据所述类型适配映射表,将返回值转换成网络脚 本语言javascript对应的类型,再返回给javascript调用者,使其获取到正确结果。
[0036] 较佳的,所述脚本与游戏逻辑交互模块通过获知所述本地游戏代码转换为字符串 形式调用转发网络脚本模块,具体包括:
[0037] 游戏代码以字符串形式通知所述脚本与游戏逻辑交互模块要调用的网络脚本语 言javascript调用信息,所述调用信息至少包括函数名及调用参数;
[0038] 所述脚本与游戏逻辑交互模块将所述调用信息发送给javascript引擎,执行对 应脚本并获取执行结果;
[0039] 所述脚本与游戏逻辑交互模块将脚本执行结果保存起来,根据类型映射表将所述 执行结果对应的数据转化为对应的本地游戏代码类型,然后将对应的地址以统一的指针形 式返回;
[0040] 游戏代码获取统一的指针形式的返回结果后,根据自身逻辑,将其转换成正确的 数据类型指针使用。
[0041] 本发明的有益效果是:通过此双向通讯系统与方法可是实现游戏主逻辑模块与浏 览器内核模块的双向通讯。换句话说,游戏客户端能够与内置的网页浏览器实现完全互通, 一方面使此前必须要切换到游戏外进行网页操作的功能能够无缝集成到游戏内,增强用户 体验;另外一方面,能够将部分功能开发放到web平台,再集成到客户端中,实现与游戏内 功能一致的效果。
【附图说明】
[0042] 图1为本发明主系统的结构示意图;
[0043] 图2为本发明方法的流程图;
[0044] 图3为本发明实施例中,由网络浏览器切换到游戏客户端的方法流程图;
[0045] 图4为本发明实施例中,由游戏客户端切换到网络浏览器的方法流程图。
[0046] 其中,1为游戏主逻辑模块,2为浏览器内核模块,3为渲染模块,4为输入模块, 5为脚本引擎模块,6为脚本与游戏逻辑交互模块。
【具体实施方式】
[0047] 以下结合附图和具体实施例对本发明进行详细描述,但不做
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1