CN117008884B - 游戏开发中的逻辑类处理方法、装置、设备及存储介质 - Google Patents
游戏开发中的逻辑类处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117008884B CN117008884B CN202310830445.1A CN202310830445A CN117008884B CN 117008884 B CN117008884 B CN 117008884B CN 202310830445 A CN202310830445 A CN 202310830445A CN 117008884 B CN117008884 B CN 117008884B
- Authority
- CN
- China
- Prior art keywords
- class
- logic
- logic class
- attribute
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000011161 development Methods 0.000 title claims abstract description 55
- 238000003672 processing method Methods 0.000 title claims abstract description 27
- 230000015654 memory Effects 0.000 claims abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 24
- 230000006870 function Effects 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 30
- 238000010276 construction Methods 0.000 claims description 14
- 238000004321 preservation Methods 0.000 claims 1
- 239000008280 blood Substances 0.000 description 20
- 210000004369 blood Anatomy 0.000 description 20
- 239000002609 medium Substances 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000008188 pellet Substances 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种游戏开发中的逻辑类处理方法、装置、设备及存储介质,涉及计算机游戏技术领域。该方法包括:获取待构建的逻辑类的基础信息,通过逻辑类构建器以及基础信息构建逻辑类,将逻辑类存储至逻辑类存储器中;根据逻辑类的父类和子类建立逻辑类的继承关系;响应于外部模块的逻辑类访问请求,通过逻辑类构建器以及继承关系在逻辑类存储器中获取目标逻辑类和对应的父类,根据目标逻辑类和对应的父类生成目标逻辑类的对象,将目标逻辑类的对象返回至外部模块。通过上述技术手段,以通过配置各个逻辑类之间的继承关系实现子类对父类的继承,解决了现有技术中通过编码实现类的继承的问题,提高游戏开发效率以及程序的稳定性和性能。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种游戏开发中的逻辑类处理方法、装置、设备及存储介质。
背景技术
面向对象编程是目前最为常用的编程方式之一,在面向对象程序设计中,最重要的是继承。当创建一个类时,不要重新编写新的数据成员和函数,只需要指定继承自己的父类即可继承父类中的所有属性和方法。
在现有的游戏开发过程中,为了提高游戏开发效率,会通过类逐级继承对应父类,以继承多个类的属性和方法。但类的继承还是要通过编码实现,随着类继承的层级越来越多,程序的复杂度越来越高,编码工作量也越来越大,对开发效率以及程序的稳定性和性能造成一定影响。
发明内容
本申请提供一种游戏开发中的逻辑类处理方法、装置、设备及存储介质,以通过配置各个逻辑类之间的继承关系实现子类对父类的继承,解决了现有技术中通过编码实现类的继承的问题,提高游戏开发效率以及程序的稳定性和性能。
第一方面,本申请提供了一种游戏开发中的逻辑类处理方法,包括:
获取待构建的逻辑类的基础信息,通过逻辑类构建器以及所述基础信息构建所述逻辑类,将所述逻辑类存储至逻辑类存储器中;
根据所述逻辑类的父类和子类建立所述逻辑类的继承关系;
响应于外部模块的逻辑类访问请求,通过所述逻辑类构建器以及所述继承关系在所述逻辑类存储器中获取目标逻辑类和对应的父类,根据所述目标逻辑类和对应的父类生成所述目标逻辑类的对象,将所述目标逻辑类的对象返回至所述外部模块。
第二方面,本申请提供了一种游戏开发中的逻辑类处理装置,包括:
逻辑类构建模块,被配置为获取待构建的逻辑类的基础信息,通过逻辑类构建器以及所述基础信息构建所述逻辑类,将所述逻辑类存储至逻辑类存储器中;
继承关系建立模块,被配置为根据所述逻辑类的父类和子类建立所述逻辑类的继承关系;
逻辑类访问模块,被配置为响应于外部模块的逻辑类访问请求,通过所述逻辑类构建器以及所述继承关系在所述逻辑类存储器中获取目标逻辑类和对应的父类,根据所述目标逻辑类和对应的父类生成所述目标逻辑类的对象,将所述目标逻辑类的对象返回至所述外部模块。
第三方面,本申请提供了一种游戏开发中的逻辑类处理设备,包括:
一个或多个处理器;存储器,存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的逻辑类处理方法。
第四方面,本申请提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的逻辑类处理方法。
在本申请中,获取待构建的逻辑类的基础信息,通过逻辑类构建器以及基础信息构建逻辑类,将逻辑类存储至逻辑类存储器中;根据逻辑类的父类和子类建立逻辑类的继承关系;响应于外部模块的逻辑类访问请求,通过逻辑类构建器以及继承关系在逻辑类存储器中获取目标逻辑类和对应的父类,根据目标逻辑类和对应的父类生成目标逻辑类的对象,将目标逻辑类的对象返回至外部模块。通过上述技术手段,在开发时不再需要对相关子类的继承和封装进行编码,只需通过相关的基础信息和继承类即可构建出对应类的对象,实现了编码智能化。而且各个逻辑类之间的继承关系清晰,在进行相关功能开发时,无需耗费大量时间去分析复杂的源码,提高了游戏开发效率。逻辑类的构建和访问使得游戏项目的开发更简单快捷,降低了开发的出错率,为游戏的开发带来更高的效率和更高的质量。
附图说明
图1是本申请实施例提供的一种游戏开发中的逻辑类处理方法的流程图;
图2是本申请实施例提供的通过逻辑类构建器构建逻辑类的流程图;
图3是本申请实施例提供的生成逻辑类的成员属性的流程图;
图4是本申请实施例提供的生成逻辑类的成员表的流程图;
图5是本申请实施例提供的获取目标逻辑类的流程图;
图6是本申请实施例提供的一种游戏开发中的逻辑类处理装置的结构示意图;
图7是本申请实施例提供的一种游戏开发中的逻辑类处理设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子程序等等。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
在较为常见的游戏开发方式中,由于游戏的对象较多,例如游戏对象一般包括场景、游戏玩家、非游戏玩家、道具和容器,这些游戏对象都由类实例而来,开发一个游戏需要编写大量的类。为了提高游戏开发效率,可通过类逐级继承对应父类的方式,来使得类的对象在具备本身属性和方法的同时,还可以继承父类的属性和方法。无论是类的自身属性和方法的开发还是类的继承,都需要开发人员进行编码,随着类继承的层级越来越多,程序的复杂度越来越高,编码工作量也越来越大,对开发效率以及程序的稳定性和性能造成一定影响。
为解决上述问题,本实施例提供了一种游戏开发中的逻辑类处理方法,以通过配置各个逻辑类之间的继承关系实现子类对父类的继承,解决了现有技术中通过编码实现类的继承的问题,提高游戏开发效率以及程序的稳定性和性能。
本实施例中提供的逻辑类处理方法可以由游戏开发中的逻辑类处理设备执行,该逻辑类处理设备可以通过软件和/或硬件的方式实现,该逻辑类处理设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。例如逻辑类处理设备可以是用于开发游戏的计算机。
逻辑类处理设备安装有至少一类操作系统,其中,操作系统包括但不限定于安卓系统、Linux系统及Windows系统。逻辑类处理设备可以基于操作系统安装至少一个应用程序,应用程序可以为操作系统自带的应用程序,也可以为从第三方设备或者服务器中下载的应用程序。在该实施例中,逻辑类处理设备至少有可以执行逻辑类处理方法的应用程序。
为便于理解,本实施例以计算机为执行逻辑类处理方法的主体为例进行描述。
图1给出了本申请实施例提供的一种游戏开发中的逻辑类处理方法的流程图。参考图1,该逻辑类处理方法具体包括:
S110、获取待构建的逻辑类的基础信息,通过逻辑类构建器以及基础信息构建逻辑类,将逻辑类存储至逻辑类存储器中。
其中,逻辑类可理解为游戏对象对应的类。游戏对象大致分为场景、游戏玩家、非游戏玩家、道具和容器这五种基础类别,其他对象都可看作是由这五种对象衍生而来的子类对象。这五种游戏对象对应不同类型的逻辑类,场景对应的逻辑类为场景基类,游戏玩家对应的逻辑类为玩家基类,非游戏玩家对应的逻辑类为非游戏玩家基类,道具对应的逻辑类为道具基类,容器对应的逻辑类为容器基类。场景基类的子类可以包括主场景类、副本类和工会驻地类等。游戏玩家是玩家在游戏中扮演的角色,这个角色包含玩家自身的属性和行为,具有独特性,在游戏开发中,游戏玩家基类没有对应的子类。非游戏玩家的子类可以包括剧情NPC类(non-player character,非游戏玩家)、战斗NPC类和服务NPC类。道具基类的子类可以包括装备道具类和消耗道具类,消耗道具类的子类可以包括血瓶类、经验丹类和礼物类等,装备道具类的子类可以包括武器类和防具类。游戏中容器用于存储其他实体对象,比如道具存放在背包中,背包就是一个容器,技能存放在技能栏中,技能栏就是一个容器,因此容器基类的子类包括背包类和技能栏类。
逻辑类的基础信息包括构建出该逻辑类所需的信息,例如构建血瓶类需要其类名、属性和行为函数等。在该实施例中,图2是本申请实施例提供的通过逻辑类构建器构建逻辑类的流程图。如图2所示,该通过逻辑类构建器构建逻辑类的步骤具体包括S1101-S1102:
S1101、通过逻辑类构建器以及基础信息中的类名,生成逻辑类的哈希值。
示例性的,调用逻辑类构建器基于血瓶类的类名,生成血瓶类对应的哈希值,以便后续可通过该哈希值快速访问血瓶类的对象。
S1102、通过逻辑类构建器以及基础信息中的成员信息,生成逻辑类的成员属性、成员表和成员函数,以构建出逻辑类。
示例性的,逻辑类成员包括成员属性、成员表和成员函数。成员属性用于存储单个数值,成员表用于存储多个数值,数值按照行列的方式进行存储。成员函数用于操作逻辑类的属性和表。本实施例通过事先定义逻辑类的成员信息,由逻辑类构建器基于成员信息生成逻辑类的成员属性、成员表和成员函数,基于成员属性、成员表和成员函数构建出逻辑类,无需通过编码生成,提高逻辑类的开发效率。
在该实施例中,图3是本申请实施例提供的生成逻辑类的成员属性的流程图。如图3所示,该生成逻辑类的成员属性的步骤具体包括S11021-S11022:
S11021、通过逻辑类构建器将成员信息中的成员属性名、属性类型、属性的保存方式、属性的客户端同步方式以及属性的实时同步方式配置为逻辑类的成员属性。
S11022、根据成员属性生成逻辑类的属性查询接口和属性操作接口。
其中,成员属性名是指成员属性的名。属性类型是指成员属性对应的数据类型,一般有byte、word、dword、int、int64、float、double、string和wstring。保存方式是指是否将对应的成员属性保存到数据库,当保存方式配置为true时,该成员属性会保存到数据库,当保存方式指定为false时,该成员属性会保存到数据库。属性的客户端同步方式包括是否将对应的成员属性同步到本地客户端,是否将对应的成员属性同步到第三方客户端。当是否将对应的成员属性同步到本地客户端配置为true时,该成员属性会自动同步到本地客户端,当配置为false时,该成员属性不会同步到本地客户端。当是否将对应的成员属性同步到第三方客户端配置为true时,该成员属性会自动同步到第三方客户端,当配置为false时,该成员属性不会同步到第三方客户端。属性的实时同步方式是指是否将对应的成员属性实时同步到客户端,当配置为true时,该成员属性会立即同步到客户端,当配置为false时,则会将成员属性先进行缓存,再定时同步到客户端。
通过逻辑类构建器基于成员属性名、属性类型、属性的保存方式、属性的客户端同步方式以及属性的实时同步方式,为逻辑类生成成员属性。之后,对成员属性进行封装以生成逻辑类的属性查询接口和属性操作接口,以便通过属性查询接口获取成员属性的属性值。属性操作接口包括添加属性接口、删除属性接口、修改属性接口、遍历属性接口和设置属性接口,可通过这些属性操作接口对成员属性的各种配置进行添加、删除、修改、遍历和设置的操作。
在该实施例中,图4是本申请实施例提供的生成逻辑类的成员表的流程图。如图4所示,该生成逻辑类的成员表的步骤具体包括S11023-S11024:
S11023、通过逻辑类构建器将成员信息中的成员表名、最大行数、列数、列类型、表的保存方式、表的客户端同步方式以及表的实时同步方式配置为逻辑类的成员表。
S11024、根据成员表生成逻辑类的表查询接口和表操作接口。
其中,成员表名是指成员表的名。最大行数是指对应成员表可以存储数据的最大行数。列数是指成员总共有多少列的数据。列类型是指成员表的每一列存储的数据的类型,一般列类型有byte、word、dword、int、int64、float、double、string和wstring。表的保存方式是指是否将对应的成员表保存到数据库,当保存方式配置为true时,该成员表会自动保存到数据库,当保存方式配置为false时,该成员表不会保存到数据库。表的客户端同步方式包括是否将对应的成员表同步到本地客户端,是否将对应的成员表同步到第三方客户端。当是否将对应成员表同步到本地客户端配置为true时,该成员表会自动同步到本地客户端,当配置为false时,该成员表不会同步到本地客户端。当是否将对应成员表同步到第三方客户端配置为true时,该成员表会自动同步到第三方客户端,当配置为false时,该成员表不会同步到第三方客户端。表的实时同步方式是指是否将对应的成员表实时同步到客户端,当配置为true时,该成员表会立即同步到客户端,当配置为false时,则会将成员表先进行缓存,再定时同步到客户端。
通过逻辑类构建器基于成员表名、最大行数、列数、列类型、表的保存方式、表的客户端同步方式以及表的实时同步方式,为逻辑类生成成员表。之后,对成员表进行封装以生成逻辑类的表查询接口和表操作接口,以便通过表查询接口获取成员表存储的数据。表操作接口包括添加表接口、删除表接口、修改表接口、遍历表接口和设置表接口,可通过这些表操作接口对成员表的各种配置进行添加、删除、修改、遍历和设置的操作。
在该实施例中,当生成逻辑类的成员函数时,注册逻辑类的属性回调函数和表回调函数,将属性回调函数、表回调函数添加到逻辑类的事件列表。示例性的,属性回调函数可监听对应成员属性的变化事件,当成员属性发生变化时,属性回调函数自动执行;表回调函数可监听对应成员表的变化事件,当成员表发生变化时,表回调函数自动执行。本实施例通过回调函数可实现逻辑类的多态特性,简化编码,使得逻辑处理清晰可见,提高代码的可阅读性和可维护性。例如,在战斗NPC类可以注册移动函数来处理战斗NPC移动时相关的逻辑,而对于服务NPC类,由于服务NPC不会移动,则不用注册移动相关的回调函数。
S120、根据逻辑类的父类和子类建立逻辑类的继承关系。
示例性的,在游戏开发过程中,由开发人员根据各个逻辑类的游戏对象指定逻辑类继承的父类和/或继承该逻辑类的子类,例如,指定道具基类为消耗道具类的父类,指定血瓶类、经验丹类和礼物类为消耗道具类的子类。通过逻辑类构建器根据逻辑类动态指定的父类和子类,建立逻辑类的继承关系。除此之外,开发人员还可以在配置文件内手动配置逻辑类的父类和子类,通过逻辑类构建器根据配置文件中逻辑类的父类和子类,建立逻辑类的继承关系。在建立逻辑类的继承关系后,由逻辑类构建器对各个逻辑类之间的继承关系进行管理。当查询某个逻辑类的父类时,调用parent函数即可获取到父类的对象,当查询某个逻辑类的子类时,调用ChildList即可获取到子类的对象。
S130、响应于外部模块的逻辑类访问请求,通过逻辑类构建器以及继承关系在逻辑类存储器中获取目标逻辑类和对应的父类,根据目标逻辑类和对应的父类生成目标逻辑类的对象,将目标逻辑类的对象返回至外部模块。
其中,外部模块可理解为计算机中用于开发游戏项目的模块,逻辑类访问请求是指用于获取目标逻辑类的对象的请求。示例性的,当开发人员在游戏项目中添加血瓶类的对象,则通过外部模块向逻辑类构建器发送获取血瓶类的访问请求。逻辑类构建器基于血瓶类的访问请求从逻辑类存储器中获取血瓶类,根据继承关系确定血瓶类的父类,将血瓶类指定继承其父类后进行实例化得到血瓶类的对象,无需对血瓶类的基础进行额外的编码,为游戏项目的开发节省了大量时间,同时使得逻辑业务开发更加简单明了。逻辑类构建器将生成的血瓶类的对象返回给外部模块,以便外部模块将血瓶类的对象添加在游戏项目中。
而且逻辑类构建器管理着各个逻辑类之间的继承关系,若想要更改逻辑类可继承的父类或继承该逻辑类的子类,可通过修改继承关系的配置,而不用重新修改源码,大大提高了游戏开发的效率。
在该实施例中,图5是本申请实施例提供的获取目标逻辑类的流程图。如图5所示,该获取目标逻辑类的步骤具体包括S1301-S1302:
S1301、通过逻辑类构建器以及目标逻辑类的类名生成目标逻辑类的哈希值。
S1302、根据目标逻辑类的哈希值查询逻辑类存储器中对应的目标逻辑类。
示例性的,调用逻辑类构建器基于血瓶类的类名生成血瓶类的哈希值,通过哈希值查找血瓶类在逻辑类存储器中的存储位置,从而获取到血瓶类,可有效提高了逻辑类的查询效率。
综上,本申请实施例提供的逻辑类处理方法,通过获取待构建的逻辑类的基础信息,通过逻辑类构建器以及基础信息构建逻辑类,将逻辑类存储至逻辑类存储器中;根据逻辑类的父类和子类建立逻辑类的继承关系;响应于外部模块的逻辑类访问请求,通过逻辑类构建器以及继承关系在逻辑类存储器中获取目标逻辑类和对应的父类,根据目标逻辑类和对应的父类生成目标逻辑类的对象,将目标逻辑类的对象返回至外部模块。通过上述技术手段,在开发时不再需要对相关子类的继承和封装进行编码,只需通过相关的基础信息和继承类即可构建出对应类的对象,实现了编码智能化。而且各个逻辑类之间的继承关系清晰,在进行相关功能开发时,无需耗费大量时间去分析复杂的源码,提高了游戏开发效率。逻辑类的构建和访问使得游戏项目的开发更简单快捷,降低了开发的出错率,为游戏的开发带来更高的效率和更高的质量。
在上述实施例的基础上,图6为本申请实施例提供的一种游戏开发中的逻辑类处理装置的结构示意图。参考图6,本实施例提供的逻辑类处理装置具体包括:逻辑类构建模块21、继承关系建立模块22和逻辑类访问模块23。
其中,逻辑类构建模块21,被配置为获取待构建的逻辑类的基础信息,通过逻辑类构建器以及基础信息构建逻辑类,将逻辑类存储至逻辑类存储器中;
继承关系建立模块22,被配置为根据逻辑类的父类和子类建立逻辑类的继承关系;
逻辑类访问模块23,被配置为响应于外部模块的逻辑类访问请求,通过逻辑类构建器以及继承关系在逻辑类存储器中获取目标逻辑类和对应的父类,根据目标逻辑类和对应的父类生成目标逻辑类的对象,将目标逻辑类的对象返回至外部模块。
在上述实施例的基础上,逻辑类构建模块22包括:第一哈希值生成单元,被配置为通过逻辑类构建器以及基础信息中的类名,生成逻辑类的哈希值;逻辑类构建单元,被配置为通过逻辑类构建器以及基础信息中的成员信息,生成逻辑类的成员属性、成员表和成员函数,以构建出逻辑类。
在上述实施例的基础上,逻辑类构建单元包括:成员属性生成子单元,被配置为通过逻辑类构建器将成员信息中的成员属性名、属性类型、属性的保存方式、属性的客户端同步方式以及属性的实时同步方式配置为逻辑类的成员属性;成员属性封装子单元,被配置为根据成员属性生成逻辑类的属性查询接口和属性操作接口。
在上述实施例的基础上,逻辑类构建单元包括:成员表生成子单元,被配置为通过逻辑类构建器将成员信息中的成员表名、最大行数、列数、列类型、表的保存方式、表的客户端同步方式以及表的实时同步方式配置为逻辑类的成员表;成员表封装子单元,被配置为根据成员表生成逻辑类的表查询接口和表操作接口。
在上述实施例的基础上,逻辑类构建单元包括:成员函数构建子单元,被配置为注册逻辑类的属性回调函数和表回调函数,将属性回调函数、表回调函数添加到逻辑类的事件列表。
在上述实施例的基础上,逻辑类访问模块23包括:第二哈希值生成单元,被配置为通过逻辑类构建器以及目标逻辑类的类名生成目标逻辑类的哈希值;目标逻辑类获取单元,被配置为根据目标逻辑类的哈希值查询逻辑类存储器中对应的目标逻辑类。
在上述实施例的基础上,继承关系建立模块21包括:第一建立单元,被配置为根据逻辑类动态指定的父类和子类,建立逻辑类的继承关系;或,第二建立单元,被配置为根据配置文件中逻辑类的父类和子类,建立逻辑类的继承关系。
上述,本申请实施例提供的逻辑类处理装置,通过获取待构建的逻辑类的基础信息,通过逻辑类构建器以及基础信息构建逻辑类,将逻辑类存储至逻辑类存储器中;根据逻辑类的父类和子类建立逻辑类的继承关系;响应于外部模块的逻辑类访问请求,通过逻辑类构建器以及继承关系在逻辑类存储器中获取目标逻辑类和对应的父类,根据目标逻辑类和对应的父类生成目标逻辑类的对象,将目标逻辑类的对象返回至外部模块。通过上述技术手段,在开发时不再需要对相关子类的继承和封装进行编码,只需通过相关的基础信息和继承类即可构建出对应类的对象,实现了编码智能化。而且各个逻辑类之间的继承关系清晰,在进行相关功能开发时,无需耗费大量时间去分析复杂的源码,提高了游戏开发效率。逻辑类的构建和访问使得游戏项目的开发更简单快捷,降低了开发的出错率,为游戏的开发带来更高的效率和更高的质量。
本申请实施例提供的逻辑类处理装置可以用于执行上述实施例提供的逻辑类处理方法,具备相应的功能和有益效果。
图7是本申请实施例提供的一种游戏开发中的逻辑类处理设备的结构示意图,参考图7,该逻辑类处理设备包括:处理器31、存储器32、通信装置33、输入装置34及输出装置35。该逻辑类处理设备中处理器31的数量可以是一个或者多个,该逻辑类处理设备中的存储器32的数量可以是一个或者多个。该逻辑类处理设备的处理器31、存储器32、通信装置33、输入装置34及输出装置35可以通过总线或者其他方式连接。
存储器32作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例的逻辑类处理方法对应的程序指令/模块(例如,逻辑类处理装置中的逻辑类构建模块21、继承关系建立模块22和逻辑类访问模块23)。存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
通信装置33用于进行数据传输。
处理器31通过运行存储在存储器32中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的逻辑类处理方法。
输入装置34可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置35可包括显示屏等显示设备。
上述提供的逻辑类处理设备可用于执行上述实施例提供的逻辑类处理方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种游戏开发中的逻辑类处理方法,该逻辑类处理方法包括:获取待构建的逻辑类的基础信息,通过逻辑类构建器以及基础信息构建逻辑类,将逻辑类存储至逻辑类存储器中;根据逻辑类的父类和子类建立逻辑类的继承关系;响应于外部模块的逻辑类访问请求,通过逻辑类构建器以及继承关系在逻辑类存储器中获取目标逻辑类和对应的父类,根据目标逻辑类和对应的父类生成目标逻辑类的对象,将目标逻辑类的对象返回至外部模块。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的逻辑类处理方法,还可以执行本申请任意实施例所提供的逻辑类处理方法中的相关操作。
上述实施例中提供的逻辑类处理装置、存储介质及逻辑类处理设备可执行本申请任意实施例所提供的逻辑类处理方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的逻辑类处理方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (8)
1.一种游戏开发中的逻辑类处理方法,其特征在于,包括:
获取待构建的逻辑类的基础信息,通过逻辑类构建器以及所述基础信息中的类名,生成所述逻辑类的哈希值,通过所述逻辑类构建器以及所述基础信息中的成员信息,生成所述逻辑类的成员属性、成员表和成员函数,以构建出所述逻辑类,将所述逻辑类存储至逻辑类存储器中;其中,逻辑类为游戏对象对应的类;
根据所述逻辑类的父类和子类建立所述逻辑类的继承关系;
响应于外部模块的逻辑类访问请求,通过所述逻辑类构建器以及所述继承关系在所述逻辑类存储器中获取目标逻辑类和对应的父类,其中,包括通过所述逻辑类构建器以及目标逻辑类的类名生成所述目标逻辑类的哈希值;根据所述目标逻辑类的哈希值查询所述逻辑类存储器中对应的目标逻辑类;
根据所述目标逻辑类和对应的父类生成所述目标逻辑类的对象,将所述目标逻辑类的对象返回至所述外部模块。
2.根据权利要求1所述的逻辑类处理方法,其特征在于,在所述通过所述逻辑类构建器以及所述基础信息中的成员信息,生成所述逻辑类的成员属性、成员表和成员函数,以构建出所述逻辑类时,包括:
通过所述逻辑类构建器将所述成员信息中的成员属性名、属性类型、属性的保存方式、属性的客户端同步方式以及属性的实时同步方式配置为所述逻辑类的成员属性;
根据所述成员属性生成所述逻辑类的属性查询接口和属性操作接口。
3.根据权利要求1所述的逻辑类处理方法,其特征在于,在所述通过所述逻辑类构建器以及所述基础信息中的成员信息,生成所述逻辑类的成员属性、成员表和成员函数,以构建出所述逻辑类时,包括:
通过所述逻辑类构建器将所述成员信息中的成员表名、最大行数、列数、列类型、表的保存方式、表的客户端同步方式以及表的实时同步方式配置为所述逻辑类的成员表;
根据所述成员表生成所述逻辑类的表查询接口和表操作接口。
4.根据权利要求1所述的逻辑类处理方法,其特征在于,在所述通过所述逻辑类构建器以及所述基础信息中的成员信息,生成所述逻辑类的成员属性、成员表和成员函数,以构建出所述逻辑类时,包括:
注册所述逻辑类的属性回调函数和表回调函数,将所述属性回调函数、表回调函数添加到所述逻辑类的事件列表。
5.根据权利要求1所述的逻辑类处理方法,其特征在于,所述根据所述逻辑类的父类和子类建立所述逻辑类的继承关系,包括:
根据所述逻辑类动态指定的父类和子类,建立所述逻辑类的继承关系;或,
根据配置文件中所述逻辑类的父类和子类,建立所述逻辑类的继承关系。
6.一种游戏开发中的逻辑类处理装置,其特征在于,包括:
逻辑类构建模块,被配置为获取待构建的逻辑类的基础信息,通过逻辑类构建器以及所述基础信息中的类名,生成所述逻辑类的哈希值,通过所述逻辑类构建器以及所述基础信息中的成员信息,生成所述逻辑类的成员属性、成员表和成员函数,以构建出所述逻辑类,将所述逻辑类存储至逻辑类存储器中;其中,逻辑类为游戏对象对应的类;
继承关系建立模块,被配置为根据所述逻辑类的父类和子类建立所述逻辑类的继承关系;
逻辑类访问模块,被配置为响应于外部模块的逻辑类访问请求,通过所述逻辑类构建器以及所述继承关系在所述逻辑类存储器中获取目标逻辑类和对应的父类,根据所述目标逻辑类和对应的父类生成所述目标逻辑类的对象,将所述目标逻辑类的对象返回至所述外部模块;其中,所述逻辑类访问模块还包括第二哈希值生成单元,被配置为通过逻辑类构建器以及目标逻辑类的类名生成目标逻辑类的哈希值;目标逻辑类获取单元,被配置为根据目标逻辑类的哈希值查询逻辑类存储器中对应的目标逻辑类。
7.一种游戏开发中的逻辑类处理设备,其特征在于,包括:一个或多个处理器;存储器,存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5任一所述的逻辑类处理方法。
8.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-5任一所述的逻辑类处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310830445.1A CN117008884B (zh) | 2023-07-06 | 2023-07-06 | 游戏开发中的逻辑类处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310830445.1A CN117008884B (zh) | 2023-07-06 | 2023-07-06 | 游戏开发中的逻辑类处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117008884A CN117008884A (zh) | 2023-11-07 |
CN117008884B true CN117008884B (zh) | 2024-05-17 |
Family
ID=88561106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310830445.1A Active CN117008884B (zh) | 2023-07-06 | 2023-07-06 | 游戏开发中的逻辑类处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117008884B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329991A (zh) * | 2017-06-07 | 2017-11-07 | 武汉斗鱼网络科技有限公司 | 一种列表页访问和展示方法及其系统 |
CN112131112A (zh) * | 2020-09-22 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 操作信息的获取方法和装置、存储介质及电子设备 |
CN112272218A (zh) * | 2020-10-16 | 2021-01-26 | 苏州浪潮智能科技有限公司 | 云平台实例资源操作方法、装置、计算机设备及存储介质 |
CN112802164A (zh) * | 2021-04-06 | 2021-05-14 | 成都完美时空网络技术有限公司 | 一种动画状态机的实现方法、装置、存储介质和电子装置 |
CN113254024A (zh) * | 2021-05-27 | 2021-08-13 | 平安普惠企业管理有限公司 | 代码继承关系优化方法、装置、设备及存储介质 |
CN113342429A (zh) * | 2021-06-09 | 2021-09-03 | 网易(杭州)网络有限公司 | 智能合约数据处理方法、装置、计算机设备及存储介质 |
CN113827957A (zh) * | 2021-08-18 | 2021-12-24 | 网易(杭州)网络有限公司 | 虚拟游戏角色的部署方法、装置、存储介质和电子装置 |
WO2022062835A1 (zh) * | 2020-09-25 | 2022-03-31 | 北京锐安科技有限公司 | 事件响应装置、方法、电子设备及存储介质 |
CN115421699A (zh) * | 2022-09-02 | 2022-12-02 | 深圳依时货拉拉科技有限公司 | 类继承关系分析方法、装置、计算机设备和存储介质 |
CN115543265A (zh) * | 2022-09-15 | 2022-12-30 | 深圳欧税通技术有限公司 | 一种缩短新商品上架周期的方法和系统 |
CN116048731A (zh) * | 2023-02-08 | 2023-05-02 | 深圳前海微众银行股份有限公司 | 代码处理方法、装置、电子设备及存储介质 |
-
2023
- 2023-07-06 CN CN202310830445.1A patent/CN117008884B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107329991A (zh) * | 2017-06-07 | 2017-11-07 | 武汉斗鱼网络科技有限公司 | 一种列表页访问和展示方法及其系统 |
CN112131112A (zh) * | 2020-09-22 | 2020-12-25 | 腾讯科技(深圳)有限公司 | 操作信息的获取方法和装置、存储介质及电子设备 |
WO2022062835A1 (zh) * | 2020-09-25 | 2022-03-31 | 北京锐安科技有限公司 | 事件响应装置、方法、电子设备及存储介质 |
CN112272218A (zh) * | 2020-10-16 | 2021-01-26 | 苏州浪潮智能科技有限公司 | 云平台实例资源操作方法、装置、计算机设备及存储介质 |
CN112802164A (zh) * | 2021-04-06 | 2021-05-14 | 成都完美时空网络技术有限公司 | 一种动画状态机的实现方法、装置、存储介质和电子装置 |
CN113470151A (zh) * | 2021-04-06 | 2021-10-01 | 成都完美时空网络技术有限公司 | 一种动画状态机的实现方法和装置 |
CN113254024A (zh) * | 2021-05-27 | 2021-08-13 | 平安普惠企业管理有限公司 | 代码继承关系优化方法、装置、设备及存储介质 |
CN113342429A (zh) * | 2021-06-09 | 2021-09-03 | 网易(杭州)网络有限公司 | 智能合约数据处理方法、装置、计算机设备及存储介质 |
CN113827957A (zh) * | 2021-08-18 | 2021-12-24 | 网易(杭州)网络有限公司 | 虚拟游戏角色的部署方法、装置、存储介质和电子装置 |
CN115421699A (zh) * | 2022-09-02 | 2022-12-02 | 深圳依时货拉拉科技有限公司 | 类继承关系分析方法、装置、计算机设备和存储介质 |
CN115543265A (zh) * | 2022-09-15 | 2022-12-30 | 深圳欧税通技术有限公司 | 一种缩短新商品上架周期的方法和系统 |
CN116048731A (zh) * | 2023-02-08 | 2023-05-02 | 深圳前海微众银行股份有限公司 | 代码处理方法、装置、电子设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
杜庆峰 ; 李珑 ; .继承关系中子类的测试方法.电脑知识与技术.2017,(第07期),全文. * |
继承关系中子类的测试方法;杜庆峰;李珑;;电脑知识与技术;20170305(第07期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117008884A (zh) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200151180A1 (en) | Conversion of Model Views Into Relational Models | |
EP0733972B1 (en) | Method and apparatus for managing relationships among objects in a distributed object environment | |
US6061689A (en) | Object aggregation representation of relational database rows having nontraditional datatypes | |
US7900190B2 (en) | Business object templates | |
US20030233632A1 (en) | Automatically generated client application source code using database table definitions | |
CN113835685A (zh) | 一种基于拟态数据库的网络操作系统设计方法 | |
AU2017295814B2 (en) | Workflow-based object destruction | |
CN110352406A (zh) | 无锁参考计数 | |
CN112148350A (zh) | 作品远程版本管理方法、电子设备以及计算机存储介质 | |
CN108363787A (zh) | 一种ifc文件并行存储方法、装置及系统 | |
CN117008884B (zh) | 游戏开发中的逻辑类处理方法、装置、设备及存储介质 | |
CN107273425B (zh) | 一种基于orm框架的数据库开发方法及装置 | |
US11456946B2 (en) | Regular path queries (RPQS) for distributed graphs | |
US10324908B2 (en) | Exposing database artifacts | |
US9092335B2 (en) | Representing a tree structure on a flat structure | |
EP3462341B1 (en) | Local identifiers for database objects | |
US9009731B2 (en) | Conversion of lightweight object to a heavyweight object | |
US20140059080A1 (en) | System for lightweight objects | |
CN113297072B (zh) | 容器测试方法及装置 | |
US10558639B2 (en) | Objects comparison manager | |
CN115840775A (zh) | 数据的提取方法、装置、服务器及存储介质 | |
Page | Object-Oriented Analysis and Design | |
CN112527773A (zh) | 一种基于dbvc框架的数据模型、视图标准化方法及系统 | |
US8910183B2 (en) | Access to context information in a heterogeneous application environment | |
Mahmoud | Developing Middleware in Java EE 8: Build robust middleware solutions using the latest technologies and trends |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |