自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

听老罗娓娓道来

分享经验分享快乐

  • 博客(351)
  • 收藏
  • 关注

原创 一个高可配置高可扩展的fps游戏关卡管理系统

这个关卡管理系统架构设计提供了一个高可配置、高可扩展的FPS游戏关卡管理系统。通过模块化设计、配置管理、事件系统和扩展性支持,可以确保关卡管理的灵活性和可扩展性。实际实现中,您可以根据具体需求进一步扩展和优化各个模块。

2024-05-24 11:32:30 1

原创 一个高可配置高可扩展的fps游戏角色寻路系统

A*算法是一种强大的路径规划算法,结合了启发式搜索和最短路径搜索的优点。通过合理选择启发式函数和优化算法,可以在各种应用场景中实现高效的路径规划。A算法在路径规划和图搜索中具有广泛应用,但在实际应用中也会遇到各种性能问题。通过合理选择启发式函数、优化数据结构、采用增量式搜索和并行计算等技术,可以有效提升A算法的性能,适应复杂多变的应用场景。A算法通过结合实际代价和启发式估计,既能保证找到最短路径,又能加快搜索速度。它在路径规划、游戏AI和机器人导航等领域有广泛应用。

2024-05-24 11:21:02 368

原创 一个高可配置高可扩展的fps游戏角色战斗系统

通过上述设计,我们实现了一个高可配置、高可扩展的FPS游戏角色战斗系统。该系统包括角色属性、武器系统、技能系统、AI行为和网络同步等模块,并通过配置文件和工厂模式实现了灵活的配置和扩展。角色属性系统:定义角色的基本能力和状态。武器系统:定义角色可以使用的各种武器及其属性和行为。技能系统:允许角色使用各种技能。AI行为系统:定义非玩家角色的行为逻辑。网络同步系统:确保在多人游戏中,所有玩家的状态和行为在各自的客户端上保持一致。配置和扩展:使用配置文件和工厂模式实现灵活的配置和扩展。

2024-05-24 11:03:11 259

原创 fps游戏战斗相关漫谈(十四)

自定义数据的序列化和反序列化逻辑,以确保只发送最必要的信息,并以最有效的方式编码。将逻辑和渲染分离在FPS游戏中有许多优点,如提高性能、提高代码可维护性、提高响应性和更好的调试和测试。然而,这种设计也带来了一些缺点,如增加复杂性、增加延迟和资源开销。在实际开发中,需要根据具体需求和硬件环境权衡这些优缺点,选择合适的设计方案。在FPS游戏中,将状态数据分成不同的类别有助于更好地管理和处理游戏逻辑和渲染。通过合理的分类和组织,可以提高代码的可维护性、可扩展性和性能。

2024-05-24 10:57:13 246

原创 fps游戏战斗相关漫谈(十三)

你可以创建自定义的任务类型,这是通过扩展类并添加注解来实现的。

2024-05-22 18:18:41 245

原创 fps游戏战斗相关漫谈(十二)

选择Shader类型(顶点着色器和片段着色器)。使用GLSL编写Shader代码。编译和链接Shader程序。在渲染过程中使用Shader程序。通过Shader程序,可以实现各种复杂的图形效果,提升渲染的视觉质量和性能。Shader编程是图形编程中的一个重要部分,掌握Shader编程可以帮助你创建更加逼真和高效的图形应用。顶点着色器是图形渲染管线中的一个关键阶段,用于处理每个顶点的数据。通过编写顶点着色器,可以实现各种顶点变换和处理,如位置变换、颜色处理、法线变换等。

2024-05-22 15:23:26 578

原创 怎么描述一款软件的架构

软件架构的表达方式多种多样,每种方式都有其特定的用途和适用场景。选择合适的表达方式可以帮助更好地理解和沟通系统的设计和实现。常见的表达方式包括模块视图、组件与连接器视图、分配视图、行为视图、数据视图、架构描述语言以及文档和描述性文本。根据具体需求和上下文,可以选择一种或多种表达方式来描述软件架构。模块视图是软件架构中用于描述系统静态结构的重要视图。通过模块视图,可以清晰地展示系统的模块化结构、模块之间的关系以及模块的职责。常见的模块视图类型包括类图、包图和组件图。

2024-05-22 13:43:26 501

原创 游戏中几种常用表格

将Excel表格转换为CSV格式可以方便程序读取和使用静态数据。可以手动使用Excel软件进行转换,也可以使用Python脚本自动完成转换。转换后的CSV文件可以在程序中使用各种编程语言读取和处理。上述示例代码展示了如何在C++和Python中读取CSV数据,实际应用中可以根据具体需求选择合适的方法。使用pandas库将 Excel 文件转换为 CSV 格式是一个非常常见的任务。pandas提供了强大的数据处理功能,可以轻松地读取 Excel 文件并将其转换为 CSV 文件。

2024-05-22 12:49:01 294

原创 图形引擎漫谈(二)

渲染批次(Rendering Batching)渲染批次(Rendering Batching)是一种优化技术,用于减少图形渲染过程中CPU和GPU之间的通信开销,从而提高渲染性能。通过将多个绘制调用合并成一个批次,可以显著减少API调用的次数和状态切换的开销。以下是渲染批次的主要好处:1. 减少绘制调用次数每次绘制调用(如OpenGL的glDrawElements或Direct3D的DrawIndexedPrimitive)都会引发CPU和GPU之间的通信。通过将多个绘制调用合并成一个批次,可以减少

2024-05-22 12:36:13 810

原创 图形引擎漫谈(一)

Camera类在图形学中,一个Camera类通常用于表示场景中的观察点,它定义了观察者的位置、观察方向、视角等属性。Camera类的主要作用是生成一个视图矩阵(View Matrix)和一个投影矩阵(Projection Matrix),这两个矩阵用于将3D场景转换为2D图像。以下是一个简化的Camera类的实现,它包含了创建视图矩阵和投影矩阵的基本方法:#include <glm/glm.hpp>#include <glm/gtc/matrix_transform.hpp>

2024-05-22 10:31:23 324

原创 fps游戏战斗相关漫谈(十一)

通过以上步骤,你可以系统地搭建一个FPS射击游戏项目的技术框架,并将其拆分成小功能进行开发。合理的架构设计、清晰的任务分配和有效的进度管理是项目成功的关键。希望这些步骤能帮助你顺利完成项目。在一个FPS射击游戏项目中,模块划分是至关重要的,它有助于组织代码、分配任务和提高开发效率。通过以上模块划分,可以清晰地组织FPS射击游戏项目的各个部分。每个模块都有明确的功能和子模块,便于团队成员分工合作,提高开发效率。合理的模块划分不仅有助于代码的维护和扩展,还能提高项目的整体质量。

2024-05-20 22:46:11 781

原创 骨骼动画(Skeletal Animation)

骨骼动画(Skeletal Animation)是计算机图形学中的一种技术,用于动画中的角色或物体的运动。这种技术通过使用一个内部骨骼结构来操纵角色模型,而不是直接操纵模型的每个顶点。以下是骨骼动画的一些关键实现细节:骨骼结构(Skeleton)骨骼:通常由一系列的骨骼或关节组成,这些骨骼以层级结构连接,形成了一个内部框架,类似于真实世界生物的骨架。关节:每个关节(或骨骼节点)都有自己的变换(包括位置、旋转和缩放),这些变换可以相对于父关节进行。皮肤绑定(Skinning)顶点权重:模型的每

2024-05-20 21:40:55 1136

原创 腾讯天美六位TA:技术美术这份职业会长期存在吗?

就像在《死亡搁浅》的世界里,原本荒芜的山路,玩家在完成自己的任务时,留下了曲折蜿蜒的足迹,还有协助快递员翻山越岭,以及渡过河流的工具。但是就美术表现而言,美术向TA也是非常重要的了,配合程序向TA,可以让渲染达到极高的画面表现,在应用层取得最好的表现效果。因此,国内第一批技术美术出现的时候,他们基本都在承担效果提升和引擎对接方面的工作,包括编写材质着色器,改进引擎渲染管线,提供DCC工具的资源导出和检测工具,编写引擎内用的美术自动化工具,以及进行移动端性能优化等等。但三者缺一不可,彼此又爱又恨。

2024-05-19 23:23:45 472

原创 fps游戏战斗相关漫谈(十)

fps游戏中仓库系统架构设计在FPS游戏中,仓库系统是一个重要的功能模块,它允许玩家存储、管理和取用各种物品和装备。一个良好的仓库系统架构设计需要考虑数据结构、用户界面、交互逻辑、数据持久化和性能优化等多个方面。以下是一个详细的仓库系统架构设计方案:1. 数据结构设计物品数据结构定义物品的数据结构,包括物品的名称、类型、图标、数量等信息。public enum ItemType { Weapon, Armor, Consumable, Misc }[System.Serializable]p

2024-05-17 17:36:03 553

原创 游戏app版本构建流程

首先,使用哈希函数(如SHA-256)对消息进行哈希处理,生成一个固定长度的摘要(哈希值)。哈希函数设计成单向函数,即从哈希值几乎不可能推导出原始消息。

2024-05-17 10:33:47 522

原创 游戏app包体如何优化的更小

配置优化:调整库或插件的配置,关闭不需要的功能。自定义构建:如果可能,创建一个只包含所需功能的定制版本。设计FPS游戏中的团队模式程序代码框架是一个复杂而系统的过程,需要综合考虑多个方面。上述框架提供了一个基本的起点,但具体实现时还需根据项目的实际需求和目标进行调整和优化。重要的是保持代码的模块化和可扩展性,以便能够轻松地添加新功能、修复错误并进行性能优化。玩家管理逻辑是FPS游戏团队模式中的关键环节,它涉及到玩家的创建、分配、更新和事件处理等多个方面。

2024-05-16 22:26:18 786

原创 fps游戏战斗相关漫谈(九)

命中检测在FPS游戏中,武器射击的命中检测是一个关键的系统,它决定了玩家射击是否命中目标。常见的命中检测算法包括射线检测(Raycasting)和碰撞检测(Collision Detection)。以下是详细的步骤和示例代码:1. 射线检测(Raycasting)射线检测是FPS游戏中最常用的命中检测方法。它通过从武器发射一条射线,检测射线是否与目标碰撞。步骤:获取射线起点和方向:通常是玩家的视角位置和朝向。执行射线检测:检测射线是否与任何目标碰撞。处理命中结果:如果射线命中目标,计算伤害并

2024-05-16 18:54:40 762

原创 fps游戏战斗相关漫谈(八)

首先,需要定义一个协议规范,这通常是一个结构化的格式,如JSON、XML、或者专门的IDL(Interface Definition Language)。},你的工具应该允许用户在不修改工具本身的情况下,添加自定义的代码生成逻辑。这可以通过插件系统或者提供钩子(hooks)来实现。在构建脚本中,定义一个步骤来运行自动编译工具。这个步骤应该在编译游戏代码之前执行,以确保最新的协议代码被生成并包含在游戏构建中。

2024-05-16 11:58:29 997

原创 fps游戏战斗相关漫谈(七)

解决FPS游戏中的掉帧问题需要从渲染优化、游戏逻辑简化、内存管理、多线程同步以及垃圾回收等多个方面综合考虑。针对具体问题,可以采用上述一种或多种方法来提升游戏的流畅性。同时,使用性能分析工具(如Profiler)来定位瓶颈,也是解决问题的关键步骤。优化大量的Buff释放协议网络同步是一个多方面的挑战,需要综合考虑数据传输、网络协议、同步频率、预测与补偿、缓存与状态管理以及负载均衡等多个方面。通过结合这些策略,可以显著提升网络同步的效率,从而改善玩家的游戏体验。

2024-05-15 22:42:30 816

原创 fps游戏战斗相关漫谈(六)

以上是一个FPS游戏中玩家开房间的逻辑实现流程的示例。实际实现中,可能需要根据具体的游戏需求和架构进行调整和优化。网络通信:确保客户端和服务器之间的通信可靠且高效。房间管理:维护房间的好的,继续总结和补充一些关键点和细节。通过以上的示例代码和关键点的总结,我们可以看到FPS游戏中玩家开房间的逻辑实现流程涉及多个方面的工作。实际开发中,需要根据具体的需求和场景进行调整和优化。希望这些示例和总结对你有所帮助!如果有更多问题或需要进一步的细节,欢迎继续提问。

2024-05-15 19:14:38 1346

原创 fps游戏战斗相关漫谈(五)

行为树(Behavior Trees)行为树是一种用于设计游戏AI的模型,它通过树状结构的节点来表示AI的决策过程。每个节点代表一个行为或决策,并且可以包含子节点。这种结构易于理解和扩展,非常适合复杂的AI决策。状态机(State Machines)状态机是另一种常用的AI设计方法,它将AI的行为分解为一系列状态(如巡逻、追击、攻击等),以及在这些状态之间转换的触发条件。状态机可以简化AI的逻辑,并使其更容易管理。实体组件系统(Entity Component System, ECS)

2024-05-15 14:54:40 904

原创 fps游戏战斗相关漫谈(四)

在FPS(第一人称射击)游戏中,怪物复用(通常称为“对象池”或“实体池”)是一种常见的优化技术,用于管理游戏中的怪物(或其他实体)的创建和销毁。在FPS游戏中的爆破模式(Bomb Defusal Mode),通常有两个对立的团队:一个是安置炸弹的恐怖分子(Terrorists),另一个是拆除炸弹的反恐精英(Counter-Terrorists)。通过这些综合性的优化措施,可以在不牺牲游戏质量的前提下,提高爆破模块的性能,确保玩家在游戏开局时能够获得最佳的游戏体验。

2024-05-14 19:32:41 693

原创 大型开放世界的FPS地图切换

在某些情况下,内置的数据结构可能无法满足特定需求,此时可以设计自定义的数据结构来优化性能。

2024-05-14 16:57:11 624

原创 分布式系统战斗漫谈(一)

全局玩家池(Global Player Pool)是一个术语,通常用于在线游戏和网络服务领域,指的是一个统一的、全球范围内的玩家群体,这些玩家可以跨越不同的地理位置、平台和设备进行互动和游戏。联合服务器(Federated Server)在计算机网络和分布式系统的上下文中,通常指的是一组服务器或服务,它们虽然独立运行,但协同工作以提供一种统一的服务或数据访问层。这对于FPS游戏尤其重要,因为这类游戏通常对延迟和性能的要求非常高,任何的延迟或卡顿都可能直接影响到玩家的游戏体验和游戏的公平性。

2024-05-13 15:29:09 821

原创 fps游戏战斗相关漫谈(三)

角色类提供了添加、移除和查询Buff的方法,Buff类定义了Buff的应用、移除和更新逻辑,Buff管理器类用于管理所有Buff的添加和更新。综上所述,角色Buff数据的管理可以通过角色Buff列表、Buff组件或Buff管理器来实现,具体的选择取决于游戏的需求和设计。综上所述,角色技能的管理需要考虑技能列表的维护、技能的获取和升级、技能的激活和使用、技能的冷却管理、技能效果的应用以及技能的界面展示。这些是常见的需要同步的角色Buff参数,具体的需求可能因游戏设计和Buff效果的复杂性而有所不同。

2024-05-11 17:51:05 703

原创 fps游戏战斗相关漫谈(二)

在FPS(第一人称射击)游戏中,武器开火的校验逻辑是确保玩家射击行为的合法性和准确性的关键部分。这个过程通常涉及客户端和服务器之间的交互,以及一系列的步骤来验证射击事件。以下是一个简化的武器开火校验逻辑流程:玩家操作:客户端处理:发送射击数据:服务器校验:命中判定:广播结果:状态同步:继续上述的FPS射击游戏武器开火校验逻辑,我们可以进一步探讨一些额外的细节和可能的变体:处理特殊情况:反作弊检测:客户端预测修正:统计和日志:客户端视觉和音频反馈:网络优化:玩家体验优化:通过这些步骤,FPS游戏的开发者可以确

2024-05-11 16:14:11 715

原创 fps游戏同步框架设计思路

网络同步框架的设计是一个不断演进的过程,它需要适应新技术、新平台和玩家行为的变化。设计时需要考虑到系统的可扩展性、鲁棒性和维护性,同时也要关注玩家的实际体验。随着技术的发展,我们可以期待更加丰富和互动的在线游戏体验。每种同步策略都有其适用场景和权衡。在实际应用中,游戏开发者通常会结合使用多种策略,以达到最佳的同步效果和平衡。例如,客户端预测可以与服务器权威结合使用,以提供即时的输入响应同时保持游戏状态的一致性。延迟补偿可以帮助处理射击命中判定,而状态插值和快照插值则可以用来平滑其他玩家的移动和动画。

2024-05-11 15:09:14 720

原创 fps游戏战斗相关漫谈(一)

在整个战斗结算流程中,游戏需要确保所有步骤的准确性和及时性,特别是在多人在线游戏中,还需要处理网络同步和延迟问题。在FPS(第一人称射击)游戏中,战斗地图和资源加载流程是指在玩家进入游戏战斗前,系统加载所有必要的数据和资源以确保游戏能够顺利进行的过程。此外,为了提供更好的用户体验,开发者还会在加载屏幕上提供交互元素或有用的游戏提示,以减少玩家对等待时间的感知。网络延迟是命中检测中最大的挑战之一。玩家的动作和游戏服务器之间的通信可能会有延迟,这意味着服务器接收到的信息可能已经过时,不再反映游戏的当前状态。

2024-05-10 19:52:39 699

原创 游戏App资源更新

下载资源是更新过程中的一个关键步骤,它涉及从服务器获取新的或更新的文件并将其保存到用户的设备上。通过这样的流程,用户可以获得所有必要的信息来做出是否更新的决定,同时确保他们对即将到来的变化和新功能有充分的了解。通过这样的完成更新流程,用户可以放心地享受他们的应用程序或游戏,而开发者可以确保提供了一个稳定和改进的产品。用户友好的界面:更新信息的展示应该是用户友好的,最好有视觉上的吸引力,如使用图标、屏幕截图等。通过这样的下载资源流程,用户可以平滑地接收到更新,而开发者可以确保资源的完整性和安全性。

2024-05-09 20:10:08 834

原创 如何优化配置表内存消耗

使用自定义序列化指的是开发者创建专门的序列化和反序列化逻辑,而不是依赖于语言或框架提供的通用序列化机制。这种方法可以针对特定的应用场景进行优化,以提高性能、减少内存占用和缩小数据包大小。自定义序列化的关键步骤和考虑因素包括:确定数据结构:分析游戏配置数据的结构,确定哪些字段是必需的,哪些可以省略或简化。选择合适的数据格式:根据数据的特点选择合适的格式,如二进制、JSON、XML等。二进制格式通常更紧凑,适合性能敏感的应用。设计序列化逻辑:设计将配置数据从内存结构转换为可存储或传输格式的逻辑。

2024-05-09 19:50:42 763

原创 lua程序

此外,Lua 还提供了一些工具,如 luac,这是一个 Lua 编译器,它可以将 Lua 代码预编译成字节码,这样就可以在不需要源代码的情况下分发和执行程序。Lua 还有一个 JIT(Just-In-Time)编译器的实现,称为 LuaJIT,它可以大幅提高 Lua 代码的执行速度,接近甚至超过编译型语言的性能。在实际的软件开发过程中,Lua 和编译型语言往往可以互补使用,结合它们的优点来满足不同的需求。Lua 虚拟机(Lua VM)是 Lua 语言的核心组件,它负责执行编译后的 Lua 代码。

2024-05-09 19:07:46 632

原创 抽象化漫谈

在FPS(第一人称射击)游戏软件的程序代码中,抽象化是一种常见的做法,用于简化复杂的系统,使其更易于理解、维护和扩展。// 手枪射击逻辑// 手枪装填逻辑// 步枪射击逻辑// 步枪装填逻辑// 玩家移动逻辑// 玩家跳跃逻辑// 玩家攻击逻辑// 敌人移动逻辑// 敌人跳跃逻辑// 敌人攻击逻辑// 巡逻逻辑// 追击逻辑// 攻击逻辑// 事件数据。

2024-05-08 16:27:59 546

原创 架构设计漫谈

让我们以一个在线电子商务平台为例来说明架构设计的过程:需求分析在开始架构设计之前,首先要进行需求分析,了解业务目标、用户需求、系统必须支持的功能、性能目标等。例如,电子商务平台可能需要支持高并发访问、安全的支付处理、商品的浏览和搜索、用户评价系统等。定义架构风格和模式根据需求分析的结果,选择合适的架构风格和设计模式。对于电子商务平台,可能会选择微服务架构,因为它支持高度的可扩展性和灵活性,允许独立部署和升级各个服务。架构设计在这一阶段,架构师会设计系统的高层结构。

2024-05-08 15:33:47 847

原创 接口设计准则

简洁明了的命名、提供默认值和合理的默认行为、清晰的文档和示例,以及保持一致性和可预测性等措施,都有助于提供友好和易用的接口。通过以上的尽可能小的接口设计方法,我们可以将接口的功能进行细分,确保每个接口只关注一个明确的职责。在上述示例中,EmailServiceAdapter充当了一个兼容性适配器,将IEmailServiceV2接口的调用转换为IEmailServiceV1接口的调用,以满足旧版本接口的兼容性需求。通过以上的安全性设计措施,我们可以在接口设计中增强系统的安全性,防止潜在的安全威胁和攻击。

2024-05-07 22:34:39 710

原创 数据设计步骤

游戏软件的数据设计涉及到如何存储和管理游戏中的各种数据,包括玩家数据、游戏状态、游戏资源等。以下是一些基本的步骤:确定数据需求:首先,你需要确定游戏需要哪些数据。这可能包括玩家的个人信息、游戏进度、游戏设置、游戏状态、游戏资源等。你需要为每种数据定义一个清晰的数据模型,包括数据的类型、结构和关系。设计数据结构:接下来,你需要设计适合存储这些数据的数据结构。这可能包括数组、列表、字典、树、图等。你需要选择最适合存储和处理你的数据的数据结构。

2024-05-07 21:43:38 428 1

原创 何为系统架构

组件:系统架构定义了构成系统的各种组件(如模块、类、功能、服务等)以及它们的职责。连接:它描述了组件之间的连接方式,包括数据流、控制流和依赖关系。约束:系统架构定义了对系统设计的约束条件,这些条件可能是技术的、业务的或法律的。接口:它指定了系统组件之间以及系统与外部实体(如用户、其他系统或硬件)之间的交互界面。行为:系统架构描述了系统的动态行为,包括组件如何在运行时相互作用。非功能性需求:系统架构必须考虑非功能性需求,如性能、可靠性、可扩展性、安全性和可维护性。

2024-05-07 21:16:32 677 1

原创 软件开发的必备步骤

因此,设计是一个不断寻找最佳平衡点的过程。概念设计阶段的输出是一个高层次的系统设计,它不涉及具体的实现细节,而是提供一个全局视图,指导后续的详细设计和开发工作。设计文档的主要目的是确保设计的清晰性和一致性,同时为项目团队成员提供一个共享的信息源,以便于沟通、协作和后续的维护工作。这个过程的目的是发现并修正需求中的问题,在软件开发过程中尽早地进行,以避免在后期造成更大的成本和时间的损失。记住,良好的需求规格化是沟通的桥梁,它连接了项目的技术和业务侧面,确保最终交付的软件能够满足所有利益相关者的期望和需求。

2024-05-07 20:15:21 1035

原创 UML游戏案例分析

通信图(Communication Diagram),也称为协作图(Collaboration Diagram),是UML中的一种图表,用于展示对象之间的交互和它们之间发送和接收消息的关系。在游戏开发中,是否有比使用UML(统一建模语言)更好的工具,这取决于你要解决的问题、团队的偏好、项目的阶段以及你想要表达的信息类型。在游戏开发中,活动图可以用来描述游戏逻辑的流程,比如玩家完成任务的步骤、游戏启动到结束的整个流程,或者是游戏中的某个特定系统如交易系统、战斗系统等的工作流程。

2024-05-06 21:42:14 732

原创 UML漫谈

UML(统一建模语言)是一种标准的建模语言,用于软件工程中的系统设计。它是一套图形化的符号和图表,用于在软件开发过程中对系统的结构和行为进行可视化表达。UML不是一种编程语言,而是一种帮助软件开发人员定义、可视化、构建和文档化软件系统的工具。UML主要包括以下几种图:用例图(Use Case Diagram):描述系统的功能和用户(参与者)与这些功能的交互。类图(Class Diagram):展示系统中的类、它们之间的关系以及每个类的属性和方法。

2024-05-06 21:03:45 450

原创 make构建自动化工具介绍

在使用 Makefile 管理项目时,你可以编写自定义规则来自动化 Protobuf 文件的编译过程。这样,每当你的 .proto 文件发生变化时,你只需运行一个简单的 make 命令,相关的源代码就会被重新生成。以下是一个简单的 Makefile 示例,它演示了如何为 Protobuf 文件编写规则:PROTOC = protocPYTHON_OUT = --python_out=.PROTO_FILES = $(wildcard *.proto)GENERATED_PY = $(PROTO_FILES:

2024-04-30 22:33:14 873

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除