一种跨平台游戏开发工具的事件分发方法
技术领域
本发明涉及计算机游戏开发领域,具体涉及一种跨平台游戏开发工具的事件分发方法。
背景技术
随着互联网和移动互联网的发展,游戏产业正日益壮大。当前的主流游戏开发工具,如国外的UDK、Blender、Unity3D、Source SDK,目前只支持单个操作平台下的开发,已经远远不能够满足游戏开发的高效率需求。因此,除了满足角色动画、美术特效、2D和3D游戏场景的自主编辑功能外,为用户提供可自由扩展的特殊功能,以及实现在Windows、Mac平台上都可以使用成为游戏开发工具开发技术发展方向。例如,中国专利文献(公布号:CN102541567A)公开了一种2D手机游戏引擎及兼容手机操作系统的方法,该方法外部应用程序可以调用操作系统里的驱动服务或应用服务,使得应用程序和操作系统可以分开,操作系统可以兼容不同的应用程序,能解决手机游戏开发中的平台移植过于繁重两大问题,以实现跨平台,简化平台移植工作。再如,中国专利文献(公布号:CN104267963A)公开了一种跨平台角色扮演网络游戏客户端引擎,包括游戏编辑器和游戏引擎,游戏编辑器用于通过采用所见既得的方式来动态编辑游戏数据,对游戏中各个模块进行可视化编辑,游戏引擎用于为建立编写游戏所需的各种工具模块,大大缩短网页、手机游戏开发商开发同类游戏的开发周期。
要实现游戏开发工具的跨平台开发工作,其中要解决的一个重要问题就是开发工具中的UI编辑器的跨平台工作问题。因此不同的平台下UI编辑器要使用不同的平台API来绘制UI效果。目前,在MAC平台下开发游戏不单单要实现UI界面效果,还需要实时地显示游戏的渲染效果,而游戏的渲染只能通过图形渲染工具进行绘制,跨平台的UI框架工具又只能够调用平台的API来绘制像UI编辑器中的菜单、按钮等简单的UI图形,却无法绘制游戏渲染图形,为此需要将UI框架工具和图形渲染整合在一起来实现渲染效果和UI界面效果的结合。但在实际结合的时候,图形渲染窗口会覆盖于UI框架工具窗口的某一个区域以实现游戏的渲染,当有事件操作发生在该区域的时候,由于图形渲染窗口的阻挡该事件操作无法传递给UI框架工具,UI编辑器也就无法执行进一步的操作。因此,为了解决现有技术中存在的问题,研究一种跨平台游戏开发工具的事件分发方法已经成为一项重要任务。
发明内容
本发明解决的技术问题是提供一种跨平台游戏开发工具的事件分发方法,目的是透过图形渲染窗口将事件操作分发至UI框架工具,从而通过UI框架工具传递给UI编辑器的相关流程中,最终实现渲染效果和UI界面效果的有效结合。
本发明的技术方案为:
为了解决上述技术问题,本发明提供了一种跨平台游戏开发工具的事件分发方法,跨平台游戏开发工具采用UI框架工具绘制UI编辑器的UI界面,并结合图形渲染工具绘制游戏渲染图形,其特征在于:根据UI编辑器的事件操作是否发生在UI界面的预留区域内,确定UI编辑器图形渲染窗口的坐标及面积,使事件操作透过图形渲染窗口分发至UI框架工具;
进一步的,所述预留区域为UI框架工具绘制UI编辑器的UI界面时,在UI界面上预留的一个空白区域X;通过判断UI编辑器的事件操作是否发生在UI界面预留的空白区域X范围内,确定图形渲染窗口的坐标和面积参数,使得图形渲染窗口不会阻挡事件操作传递给UI框架工具窗口,从而可以保证UI编辑器能够执行进一步的工作。
进一步的,所述图形渲染窗口为UI编辑器创建的一个窗口Y,窗口Y通过图形程序接口调用显卡绘制游戏渲染图形;UI编辑器在UI界面创建一个新窗口Y,跨平台游戏开发工具就可以在窗口Y通过图形程序接口调用显卡绘制游戏渲染图形,从而能够实现UI界面实时显示游戏的渲染效果。
进一步的,窗口Y的初始坐标参数设置在空白区域X外,比如UI界面的左上角,并设置面积参数为1*1大小;
进一步的,所述空白区域X的坐标和面积参数通过UI编辑器的记录模块记录并存储;所述窗口Y的坐标和面积参数通过UI编辑器的参数设置模块进行设置;所述记录模块和参数设置模块均为UI编辑器后台设置的与坐标和面积参数相关的模块。
更进一步的,当UI编辑器的事件操作未发生在空白区域X内,窗口Y读取记录模块存储的坐标和面积参数来确定窗口Y的坐标和面积参数;这样可以使窗口Y可以正常进行游戏的渲染效果。
更进一步的,当UI编辑器的事件操作发生在空白区域X内,窗口Y读取参数设置模块设置的坐标和面积参数来重新确定窗口Y的坐标和面积参数;这样可以使窗口Y不再遮挡UI界面的空白区域X,使得操作事件能够落入UI框架工具的UI界面中,并通过UI框架工具传递给UI编辑器进行事件操作交互。
优选地,所述UI框架工具采用以LGPL许可协议分发、跨平台的图形工具包GTK,所述图形渲染工具采用跨编程语言、跨平台的编程接口规格的专业的图形程序接口OPENGL。 本发明的技术效果为:
本发明提供了一种跨平台游戏开发工具的事件分发方法,跨平台游戏开发工具将UI框架工具与图形渲染工具整合在一起实现了渲染效果和UI界面效果的有效结合,本发明根据UI编辑器的事件操作是否发生在UI界面的预留区域内,确定UI编辑器图形渲染窗口的坐标及面积,使图形渲染窗口不会遮挡UI框架工具窗口,从而实现了将事件操作透过图形渲染窗口分发至UI框架工具的操作,解决了跨平台开发工具中UI编辑器的跨平台工作问题,提高了游戏开发的效率。
附图说明
图1为本发明跨平台游戏开发工具的事件分发方法流程图。
图2为本发明UI编辑器的后台构成模块示意图。
具体实施方式
下面结合附图说明本发明的具体实施方式:
如图1-图2所示,本发明提供了一种跨平台游戏开发工具的事件分发方法,跨平台游戏开发工具采用UI框架工具绘制UI编辑器的UI界面,并结合图形渲染工具绘制游戏渲染图形,根据UI编辑器的事件操作是否发生在UI界面的预留区域内,确定UI编辑器图形渲染窗口的坐标及面积,使事件操作透过图形渲染窗口分发至UI框架工具;本实施例中UI框架工具采用以LGPL许可协议分发、跨平台的图形工具包GTK,所述图形渲染工具采用跨编程语言、跨平台的编程接口规格的专业的图形程序接口OPENGL。
由于在MAC在开发游戏需要实时地显示游戏的渲染效果,游戏的渲染只能通过渲染图形库来调用显卡进行绘制,而GTK又只能够调用平台的API来绘制像UI编辑器中的菜单、按钮等简单的UI图形,却无法绘制游戏渲染图形,为此将GTK和OPENGL整合在一起来实现渲染效果和UI界面效果的结合。但在实际结合过程中,OPENGL窗口会覆盖于GTK工具窗口的某一个区域以实现游戏的渲染,而与UI编辑器的事件操作交互则完全由GTK来实现,即事件操作只能作用在GTK的工具窗口该操作才会发生作用,但是由于OPENGL窗口会占据GTK工具窗口的一部分区域,当有事件操作发生在该区域的时候,由于OPENGL窗口的阻挡该事件操作无法传递给GTK,UI编辑器也无法执行进一步的操作。因此,本发明根据UI编辑器的事件操作是否发生在UI界面的预留区域内,确定UI编辑器OPENGL窗口的坐标及面积参数,使事件操作透过OPENGL窗口分发至GTK,从而解决了跨平台游戏开发工具中的UI编辑器的跨平台工作问题。
所述方法包括以下步骤:
步骤1、UI框架工具GTK调用MAC系统的应用程序接口API绘制UI编辑器的UI界面,同时在UI界面上预留一个空白区域X;
步骤2、UI编辑器创建一个新的窗口Y,在窗口Y通过图形程序接口OPENGL调用显卡来绘制游戏渲染图形;
步骤3、通过UI编辑器后台的记录模块记录并存储UI界面上预留空白区域X的坐标和面积参数;通过UI编辑器后台的参数设置模块设置窗口Y的坐标和面积参数,将窗口Y的初始坐标参数设置在空白区域X外,比如UI界面的左上角,并设置面积参数为1*1大小;
步骤4、判断是否有UI编辑器的事件操作发生在空白区域X范围内,并确定窗口Y的坐标及面积参数,透过窗口Y将事件分发至UI框架工具GTK;
当没有事件操作发生在空白区域X的范围内,窗口Y读取UI编辑器后台记录模块存储的UI界面上预留空白区域X的坐标和面积参数并确定窗口Y的坐标和面积参数,此时,窗口Y正常进行游戏的渲染效果;
当有事件操作发生在空白区域X的范围内,窗口Y读取参数设置模块初始设置的窗口Y的坐标和面积参数并重新确定窗口Y的坐标和面积参数,此时,窗口Y不再遮挡UI框架工具GTK的UI界面的空白区域X,事件操作便落入UI框架工具GTK的UI界面范围中,事件操作便通过UI框架工具GTK传递给UI编辑器的相关流程中,从而实现UI编辑器的事件操作交互。
此类计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
此类计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明实施例所提供的一种同步方法与同步系统,进行了详细介绍,本文中应用了具体个例对本发明实施例的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明实施例的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明实施例的限制。