当前位置: 首页 > news >正文

cocos 3D自由世界游戏 - 开发

cocos 3D自由世界游戏 - 开发

  • 概述
  • 第一步 创建环境,XForge 框架
  • 基础3D创建思路
    • 场景
      • 地形
      • 树木等环境
    • 人物角色
      • 角色实现
        • 实现代码篇
        • 空间管理篇
        • 动画逻辑篇
        • 按钮实现篇
          • 虚拟摇杆
          • 多功能按钮
        • 移动和目标篇
        • AI实现
        • 角色属性以及身份牌篇
        • 装备篇
  • 结尾

在同时浅入了unity 和 cocos以来,得到了以下个人观点
------------------------------
unity:
:优点:方便 好用,插件能帮你做80%,剩下的就是完善自己的逻辑,资源(免费)多,容易获取—我觉得这些已经够自己用了。
:缺点:由于个人游戏的环境来说,app也好、win也好,都不好传播,没有自然流量,只能通过各小游戏平台实现(或者H5),所以我选择了微信小游戏,unity有直接打包成微信小游戏的工具,打包以后,主包很小,分包10M+,也差不多,但是需要放服务器去加载,可能研究不足的原因,打包的过程以及结果,暂无法控制。 在运行的过程中,发热比较重,(跟者官方的教程走,优化不足,插件重导致运算高),控制也有插件(按钮控制,屏幕触控),但不能做到分手指进行使用,(在缩放或者移动时候,会和其他手指同时作用),想来还是得自己做轮子才能更合适自己用。
:总结:写的时候是很开心的,用的时候是比较糟心的(还有各糟心的理由就是团结要收费。。)而且发热比较重
------------------------------
cocos
:优点:界面操作简洁,编辑器加载快,(不知道怎么,确实编辑器面板看着比unity 会更舒心点),对于开发过程来说,流程是一条走的(ts 单线程的原因吧,无论是组件、脚本、单例也好,总会觉得就是顺序从上到下来的,这个对前端来说比较亲切),动画图对应unity的动画状态,效果也是很像很好的,暂时就想到这么多子。
:缺点:!!!啥都要自己做(大部分),社区环境也是可以的,但共享的、实用的东西大部分是没有的,也可能现在还是unity 等其他开发为主,池子就这么大,大佬也只有这么些。
:总结:基本上在开发和流程来说,是非常棒的 ,不过开发起来比较累,都要自己实现,有些确实不兼容微信小游戏,比如基于babylon的Navigation 寻路,在打包后就有问题,因为没有window,后面没研究, 就直接用胶囊角色控制器代替了。总之 很多要自己写。

概述

大概大家都想做一个和魔兽一样的开放世界游戏,而且要轻 随时能玩 (特别是自己的游戏可以给自己开挂~),所以历经一年多的空闲时间(当然不是所有…)进行想法实现,最后发现,要素材没素材,要逻辑太过庞大的,到真正完成,估计还需要···时间!大量时间!(一个人开发太难了。)。所以 我想记录下现在的开发进度,以及开发遇到的事情吧,
以上文字较多,各位可选择后面基本代码实现来看,其他的可以省略掉,没关系

守护域界-基础尝鲜版-3D自由开放世界逻辑基础


源代码-cocos商店

第一步 创建环境,XForge 框架

我用 的是XForge框架,第一 他是免费的,第二 他好用,第三 作者 是 这个 (๑•̀ㅂ•́)و✧棒 。
这个框架理顺了你在开发时候的2d和3d的关系, 只做纯2d也完美, 他的资源复用、分包、Manager控制、数据控制,封装的很让人舒心, 开发的时候你只要用就好了,我用下来没有发现问题,发现的都是方便、好用 推荐(XForge)
怎样搭建可以去看他的文档、也可以加qq,这里就不多说了 可以自行去看。

基础3D创建思路

一个平台 、几棵树、一个自己、几个敌人,构成我所想的游戏环境,在cocos分包中,资源的分配管理是决定大小的最重要的东西,如果把要的素材全部在scene中放置的话, 所有用到的资源其实会打包两遍–资源管理分包-使用的战斗分包,所以一切的加载都要在初始化好基本环境以后,使用预加载、分包加载 去进行资源的管理加载、 最后 一个scene 只需要几百k 就可以显示几M,甚至十几M的内容。如: 总大小有16M
总大小有16M左右, 天空、角色、敌人、环境树木、Terrain等 占用比较大,不过没关系 微信小游戏可以30M以内,所以要控制每个分包要在4M以内,做好分包管理是最重要的事情,在我的想法中,就是角色、敌人、环境等, 都可以有多个分包,通过一个管理分包路径的目录来统一进行加载。在这里插入图片描述
通过每次都访问这个文件进行加载对应的一类预制体以及分包。

做到这里,就差不多整个架构已经搭建好了,可以加上素材了

场景

地形

场景的话使用的是Terrain,Terrain资源很大,一个差不多100*100的都要1M 而且是在颜色贴图只有两个简单的几K的颜色块和塑型没有的情况下,所以 用动态方式进行加载

  // 创建地形节点const terrainNode = new Node(option.name);// 先加入场景再添加物理组件this.PlaneNode.addChild(terrainNode);// 添加地形组件const terrainComp = terrainNode.addComponent(Terrain);terrainComp._asset = terrain;// 添加碰撞体组件(此时节点已在场景中)const collider = terrainNode.addComponent(TerrainCollider);collider.setGroup(PhysicsGroupMap.Terrain);collider.terrain = terrain; // ✅ 此时onLoad已执行terrainNode.position.set(option.position);load && load();

这种方式加载所以这1M的Terrain 不会在fight分包里面在这里插入图片描述
效果正常
在这里插入图片描述

树木等环境

也是同样的道理,通过预加载和分包加载的方式来进行,
通过下面代码来实现同样的预制体有不同的呈现方式 角度 位置的偏差

 /**加载node - 通过不同形式进行坐标的生成后调用 */loadNatureNode(opt: EnvironmentConfig) {// 随机选择资源路径const nodePool = NatureLoadManager.instance.createNatrueNode(opt.paths? opt.paths[Math.floor(Math.random() * opt.paths.length)]: opt.path);if (!nodePool) {console.error("节点创建失败,路径:", opt.path);return;}//缩放if (opt.offscale) {let scale =opt.offscale[0] + Math.random() * (opt.offscale[1] - opt.offscale[0]);nodePool[0].scale.set(scale, scale, scale);} else if (opt.scale) {nodePool[0].scale.set(opt.scale, opt.scale, opt.scale);}// 添加随机旋转(修复1:正确使用计算后的旋转值)if (opt.offRotation) {let randomRotation =opt.offRotation[0] +Math.random() * (opt.offRotation[1] - opt.offRotation[0]);this.randomRot_tmp.set(0, 0, randomRotation);nodePool[0].setRotationFromEuler(this.randomRot_tmp); // 使用临时变量而非原始数组}// 坐标计算(修复2:确保使用正确的坐标索引)if (opt.offSize) {opt.position[0] += Math.random() * opt.offSize[0];opt.position[2] += Math.random() * opt.offSize[1];}// 设置节点属性nodePool[0].position.set(opt.position[0], opt.position[1], opt.position[2]);this.PlaneNode.addChild(nodePool[0]);}

在资源配置上也用了分包管理的思想, 给每个关卡可以单独配置
在这里插入图片描述
包括圆形、范围、直线随机生成树木或其他
在这里插入图片描述
这样的方式 我只需要管理关卡的map数据 以及这个预制体的加入就好了,是不是很方便
最终效果
在这里插入图片描述
树是直线的 地面上的蘑菇草之类的是范围的, 后期也可以加上在放置的位置去获取Terrain这个位置的高度来确定位置(我的只是平面没考虑,有api是可以获取高度的)
环境已经搭建好了

人物角色

在多次从头开始的情况下,我始终觉得应该拆分角色(控制器,实际模型)。在初始化时候,只有这个控制器才代表当前的玩家,里面的模型或者技能之类的都是附加的,是通过这个控制器来进行整个使用过程的控制,所以这个控制器就应该是一个预制体,每个模型也应该是额外的预制体, 并且每个比如角色类型, 是一套适配控制器的(模型,动画,数据,属性)在这里插入图片描述
暂只考虑只有一个角色。其中我每个敌人也是公共用这个配置的控制器, 和角色同理
在这里插入图片描述
其实所有角色都是通过以上两个预制体实例出来的。
期间我使用了两种方法,一个是用内存池的方式来加载,但是每次加都或多或少有上次的属性残留,很麻烦, 所以后面我直接实例预制体了,就不通过内存池, 这样就方便多了,因为每个是新的,性能问题,哎暂时不考虑把

在这里插入图片描述在这里插入图片描述
我给角色和敌人配置了不同的分包,避免后期滥用分包的问题,超过4M再进行加分包

角色实现

实现代码篇

这步,我一开始是完全敌人和角色是一体的,但是发现,从0到1 的过程 变数太多,重构太多,毕竟不是专业而且不知道哪个公用哪个不同, 在这个版本中, 我使用两套(大部分代码还是相同的)的方式来做
这里说一句 ,整个js我都放在主包里,不进行分包,一方面做个2M以上的代码也比较多了,没必要,另一方面 ,运行时候不用太考虑js分包,是很爽的, 一开始我把js都放分包,有的地方主包又要用,代码会重复部分,后期代码成熟后再考虑
在这里插入图片描述
在这里插入图片描述
基本上一个文件夹就一个功能的ts,文件名之所以都加上角色和敌人的区分,是为了编程时候不搞错,名字相同不好找而且容易混掉。

在总控实现加载各部分,reroop

export class Actor extends Component {/**挂载组件 *//**移动组件 */_moveControl: ActorMoveControl;/**动画组件 */_animControl: ActorAnimActiveControl;/**武器组件 */_weaponControl: ActorWeapon;/**攻击组件 */_attackControl: ActorAttackControl;/**属性组件 */_attribute: ActorAttribute;/**AI大脑实例 */_aiBrain: ActorAiBrain;/**事件控制器 */_eventControl: ActorEventControl;// 初始化AIthis._aiBrain = new ActorAiBrain(this, opt

相关文章:

cocos 3D自由世界游戏 - 开发

cocos 3D自由世界游戏 - 开发 序概述第一步 创建环境,XForge 框架基础3D创建思路场景地形树木等环境人物角色角色实现实现代码篇空间管理篇动画逻辑篇按钮实现篇虚拟摇杆多功能按钮移动和目标篇AI实现角色属性以及身份牌篇装备篇结尾序 在同时浅入了unity 和 cocos以来,得到…...

SOME/IP中”客户端消费“及”服务端提供”的解析

先上结论 AREthAddConsumedEventGroup-->客户端的函数-->谁调用 Consumed函数,谁就是消费者 AREthAddProvidedEventGroup-->服务端的函数-->谁调用 Provided函数,谁就是服务端 Server 端:AREthAddProvidedEventGroup → 声明 &…...

视频分析设备平台EasyCVR安防视频管理系统,打造电石生产智能视频监控新体系

一、背景介绍 电石生产中的出炉工序是整个生产流程中最为繁重且危险的环节。在开堵炉眼的过程中,电石极易发生飞溅现象,尤其在进行吹氧操作时,人员灼伤的风险极高。鉴于此,该工序正逐步由传统的人工操作模式向智能化方向转变。然…...

ffmpeg实现视频流抽帧

ffmpeg 实现视频流抽帧 抽取实时视频帧 如果你的实时视频是通过 RTSP、UDP 或其他协议获取的,可以直接调用 FFmpeg 命令来抽取帧。 ffmpeg 命令 示例 1 ffmpeg -i rtsp://your_rtsp_stream_url -vf fps1 -update 1 output.jpg说明: -i rtsp://your…...

VTK知识学习(51)- 交互与Widget(三)

1、概述 从前面的 内容可知,交互器样式(如 vtknteractorStylelmage)主要是根据不同的键盘、鼠标等消息来控制相机(vtkCamera)、Actor 等相关参数,从而达到交互的目的。而在渲染场景中,这些交互器样式是没有表达实体的。也就是说,在…...

蓝桥杯嵌入式开发板结构分析及功能学习笔记

目录 板子结构一览时钟源分析74LS573锁存器按键输入滴答定时器 SysTick串口收发LCD屏幕ADC采样AT24C02(EEPROM)可编程电阻TIM定时器输入捕获DAC 板子结构一览 主控为 **STM32G431RBT6**** 外部晶振频率为 **24MHz IAP下载为** GD32F350C8T6** 时钟源分析 自己配置的STM32Cu…...

C++进阶——C++11_智能指针

目录 1、问题引入 2、RAII和智能指针 3、C标准库的智能指针 3.1 auto_ptr (不好) 3.2 unique_ptr 3.3 shared_ptr (重点) 3.4 weak_ptr (重点) 4、shared_ptr的循环引用问题(重点) 5、shared_ptr的线程安全问题 6、C11智能指针和boost的关系 7、内存泄漏 7.1 什么是…...

音频格式转换

1. 下载ffmpeg https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-7.1.1-full_build.7z 2. 配置ffmpeg环境变量 3.安装pydub pip install pydub 4.编写转化工具代码 from pydub import AudioSegment def convertM4aToWav(m4a,wav):sound AudioSegment.from_file(m4a, f…...

mysql安装配置教程

由于您可能需要针对特定操作系统(如Windows、macOS或Linux)的MySQL安装配置教程,这里我将提供一个较为通用的指南,适用于大多数情况。如果您有特定的操作系统需求,请告诉我,我可以提供更详细的指导。 ### …...

埃文科技助力山西公共数据运营新发展

近日,郑州埃文科技有限公司(以下简称“埃文科技”)凭借“数据场景生态”的三维核心竞争力,成为山西云时代政务云技术有限公司专业领域数据类产品授权运营合作伙伴。 埃文科技作为数据全生命周期价值建设先行者,深度赋…...

【STM32】在FreeRTOS下使用硬件SPI收发数据出现的时序耦合问题(WK2124芯片为例)

问题 STM32中在Freertos使用SPI通讯芯片 WK2124进行SPI转4串口时,接收数据为一个任务,发送数据为一个任务,切接受任务优先级更高实测发现收发一段时间(约几分钟)外扩芯片会死锁导致WK2124复位。 分析 首先&#xff…...

linux Shell编程之函数与数组(四)

目录 一. shell 函数 1. 函数的用法 (1) 两个数求和 (2) 系统资源监控并报警函数 2. 函数变量的作用范围 3. 函数的参数 4. 递归函数 二. shell 数组 (1) 获取数组长度 (2) 读取某下标赋值 (3) 数组遍历 (4) 数组切片 (5) 数组替换 (6) 数组删除 三. shell 脚本…...

4.vtk光照vtkLight

文章目录 VTK中的光照1. vtkLight 的两种类型:位置光照和方向光照2. vtkLight 的常用方法3. 方法命名风格4. vtkProp 的可见性与 vtkLight 的开关 示例 VTK中的光照 vtkLight: 用于定义一个或多个光源。每个光源可以有其颜色、位置、焦点等属性。 vtkActor: 每个vtk…...

定义AIDL 接口

目录 定义 AIDL 接口创建 .aidl 文件实现 AIDL 接口向客户端公开接口接口的版本兼容性小结1. 定义 AIDL 接口 AIDL 接口是什么? 概念 AIDL(Android 接口定义语言)用来定义跨进程通信(IPC)的接口。简单来说,它规定了客户端和服务端之间如何进行数据交换和方法调用。.aidl…...

Linux系统-scp命令--两台服务器之间传输文件

一、定义 scp是secure copy的简写,scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令,可以在linux服务器之间复制文件和目录,scp传输是加密的,可能会稍微影响一下速度。另外,scp还非常不占资源,不会提…...

Visual Studio + OpenCV C++ 安装与配置教程

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,广泛用于图像处理、视频分析、模式识别和机器学习等领域。它由Intel公司于1999年发起,并在2000年由Willow Garage(一个机器人研究机构)进一步开发和维护。OpenCV支持多种编程语言,包括C++、Python…...

怎么通过OPPO手机进行图片编辑?图片编辑攻略,打造专业级照片

在当今数字化时代,手机摄影已成为记录生活、分享瞬间的重要方式。而作为市场上广受欢迎的智能手机品牌之一,OPPO手机不仅在摄影硬件上表现出色,其内置的图片编辑功能也极为强大,能够满足使用者从基础调整到高级创作的各种需求。本…...

基于MFC 的链接库

1. 动态库 MFC Regular dll: ① DLL内部有一个CWinApp类全局对象(像是基于mfc的exe程序那样存在一个theApp),该CWinApp类的Initstance负责执行dll内部初始化。 ② DLL不能人为提供Dllmain函数,该函数由mfc库提供。 ③在visual studio 的工程配置中&a…...

2025.04.15【Connection】| 生信数据可视化:连接图绘制指南

文章目录 生信数据可视化:连接图绘制指南什么是连接地图?为什么使用连接地图?如何在R中创建连接地图?1. 安装和加载必要的库2. 准备数据3. 计算大圆航线的距离和方位角4. 创建连接地图 高级技巧1. 自定义地图样式2. 添加地理背景 …...

回溯算法:List 还是 ArrayList?一个深拷贝引发的思考

在学习和使用回溯算法解决问题时&#xff0c;我们经常会遇到需要维护一个结果列表&#xff0c;例如所有可能的子集、组合或排列。 这个结果列表通常是一个 List<List<Integer>>&#xff0c;其中内部的 List<Integer> 代表一个具体的解。 然而&#xff0c;在…...

WPS表格中设置折线图随数据列自动变化——存钱计划

效果展示&#xff1a; wps自动更新表格 1.公式>名称管理器>新建 2.修改名称和引用位置 OFFSET(Sheet1!$A$2,0,0,COUNTA(Sheet1!$A:$A)-1,1) 3.插入>图表 4.右键>选择数据 5.添加&#xff0c;输入名称和系列值。 Sheet1!名称管理器里的名字 标签分类里也填入 6如图…...

内网Windows挂载目录到公网服务器

工程目的 最近在研究图像生成&#xff0c;Stable Diffusion的各种模型尤其3.5以后大的飞起来&#xff0c;动不动五六十G&#xff0c;以往上传到服务器费时费力占带宽又占存储空间&#xff0c;更关键的是用学校服务器只能校园网才能上&#xff0c;上传传个半天第二天来一看发现…...

ffmpeg命令(一):信息查询命令

媒体文件信息查看 命令说明ffmpeg -i input.mp4查看媒体文件基本信息&#xff08;封装格式、编解码器、时长等&#xff09;ffprobe input.mp4使用专用工具查看详细信息ffprobe -v error -show_format -show_streams input.mp4输出格式和流的详细信息ffprobe -v quiet -print_f…...

2 cline 提示词工程指南-记忆库

cline 提示词工程指南-记忆库 前言 编程&#xff0c;就是搭建一个系统&#xff0c;该系统在编程过程中逐步长成&#xff0c;最后该系统可以完成某个具体任务。 显然&#xff0c;编程是一个需要仔细规划、逐步推进的系统性、流程性、逻辑性工作。 我们的 ai 能胜任么&#x…...

VueDOMPurifyHTML 防止 ​​XSS(跨站脚本攻击)​​ 风险

VueDOMPurifyHTML 是一个 ​​Vue.js 插件​​&#xff0c;用于在 v-html 指令中安全地渲染 HTML 内容&#xff0c;防止 ​​XSS&#xff08;跨站脚本攻击&#xff09;​​ 风险。 ​​作用​​ ​​解决 v-html 的安全问题​​ Vue 的 v-html 会直接渲染原始 HTML&#xff0…...

关于SQLite轻量数据库的研究

安装本地SQLite 下载地址&#xff1a; https://www.sqlite.org/download.html 下载这两个包 解压到本地&#xff0c;得到这几个文件&#xff1a; 将解压后的目录添加到Path环境变量中&#xff1a; 在cmd中输入 “sqlite3” 和 “.open D:\work\sqliteInstall\mytestdb.…...

使用Python爬取豆瓣电影Top250并保存到Excel完整教程

在当今数据驱动的时代&#xff0c;获取和分析网络数据已成为许多领域的重要技能。本文将详细介绍如何使用Python爬取豆瓣电影Top250榜单数据&#xff0c;并将结果保存到Excel文件中。这个项目不仅适合Python初学者学习网络爬虫基础&#xff0c;也能帮助数据分析师获取有价值的电…...

Redis + Caffeine打造超速两级缓存架构

背景 接口的逻辑非常简单&#xff1a;根据传入的城市、仓库和发货时间&#xff0c;查询快递的预计送达时间。 然而&#xff0c;由于会频繁调用这个接口&#xff0c;尤其是在大促期间&#xff0c;接口的性能要求极高。 数据量虽然不大&#xff0c;但为了确保接口的高性能和高…...

讲讲String类的常用函数

String类在开发过程中经常用到&#xff0c;这里来总结一下。 1.声明与初始化 std::string str;//声明 std::string str "Hello, World!";//初始化 2.连接 std::string str1 "Hello, "; std::string str2 "World!"; std::string result …...

Sentinel实战教程:流量控制与Spring Boot集成

Sentinel实战教程:流量控制与Spring Boot集成 1. Sentinel简介与核心概念 1.1 什么是Sentinel? Sentinel是阿里巴巴开源的流量控制组件,主要用于微服务架构中的流量防护。它通过限流、熔断、热点防护等机制,帮助系统在高并发场景下保持稳定运行。 1.2 核心功能与术语 流…...

【计算机系统结构】MIPSsim

目录 双击MIPSsim.exe 问题1&#xff1a;Microsoft Defender SmartScreen阻止了无法是被的应用启动&#xff0c;运行此应用可能会导致你的电脑存在风险 解决 出现下面的问题的话&#xff0c;建议直接在官网下载 问题2&#xff1a;.NET Framework 3.5安装错误代码0x80240438 …...

Charles 安装与使用详解:实现 App 与小程序 HTTPS 抓包

在日常的移动端开发、接口调试或逆向分析中&#xff0c;我们经常需要抓取移动 App 或微信小程序的 HTTP/HTTPS 请求。Charles 是一款经典强大的代理抓包工具&#xff0c;凭借简单的界面和强大的功能&#xff0c;成为了 macOS 抓包的首选工具之一。 本文将详细介绍 Charles 的安…...

0415美团面试题目详解

基础知识型,基础知识!!! margin-top:100%(基于父元素宽度) “margin-top: 100% 表示元素的上外边距为父元素宽度的 100%。例如,若父元素宽 300px,则上边距为300px。需注意,CSS 中垂直方向的百分比边距(如 margin-top/margin-bottom)均基于父元素宽度计算,而非高度。这…...

【微信小程序】报错: http://127.0.0.1:7001 不在以下 request 合法域名列表中

问题 微信小程序报错: http://127.0.0.1:7001 不在以下 request 合法域名列表中&#xff0c;请参考文档&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html(env: Windows,mp,1.05.2204250; lib: 3.0.2) 解决方法&#xff1a; 详…...

go的json unmarshal和 k8s的deepcopy对比

Go 的 encoding/json.Unmarshal 和 Kubernetes 的 DeepCopy 虽然都依赖反射&#xff0c;但性能差异显著。以下是两者的对比分析及性能优化原理&#xff1a; 一、反射实现差异 1. json.Unmarshal 的反射特点 动态类型解析&#xff1a;需在运行时解析 JSON 结构&#xff0c;通过…...

1. k8s的简介

Kubernetes&#xff08;k8s&#xff09;简介 1. 产生背景 随着云计算和微服务架构的兴起&#xff0c;传统的单体应用逐渐被拆分为多个小型、松耦合的服务&#xff08;微服务&#xff09;。这种架构虽然提升了开发灵活性和可维护性&#xff0c;但也带来了新的挑战&#xff1a;…...

华为云CloudMatrix 384 超节点将有数万规模上线,赋能AI产业发展

近日&#xff0c;华为公司副总裁张修征表示&#xff0c;华为云 CloudMatrix 384 超节点今年上半年将有数万规模的上线&#xff0c;这或将彻底终结算力焦虑。未来&#xff0c;CloudMatrix 超节点可以构建超过万片的大集群来提供算力。 CloudMatrix 384超节点 华为云 CloudMatri…...

Java基础 4.15

1.重载方法练习 /* 类Methods中定义三个重载方法并调用 方法名为m 分别接受一个int参数 两个int参数 一个字符串参数 分别执行平方运算并输出 相乘并输出结果 输出字符串信息 在main()方法中分别用参数区别调用三个方法 */ public class OverLoadExercise01 {public static v…...

现代c++获取linux系统架构

现代c获取linux系统架构 前言一、使用命令获取系统架构二、使用c代码获取系统架构三、验证四、总结 前言 本文介绍一种使用c获取linux系统架构的方法。 一、使用命令获取系统架构 linux系统中可以使用arch或者uname -m命令来获取当前系统架构&#xff0c;如下图所示 archuna…...

shell编程之函数与数组

目录 shell函数 函数的用法 俩个数求和 系统资源监控并报警函数 函数变量的作用范围 函数的参数 递归函数 shell数组 获取数组的长度 读取某下的标赋值 数组遍历 数组切片 数组替换 数组删除 shell脚步调试 shell函数 函数的用法 Shell函数可用于存放一系列的…...

IntelliJ IDEA 中最常用的快捷键分类整理

以下是 IntelliJ IDEA 中最常用的快捷键分类整理&#xff0c;适用于 Windows/Linux&#xff08;Mac 用户将 Ctrl 替换为 ⌘&#xff0c;Alt 替换为 Option&#xff09;&#xff1a; 一、编辑相关 快捷键功能说明Ctrl Space基础代码补全Ctrl Shift Space智能类型补全Ctrl P…...

大数据面试问答-Kafka/Flink

1. Kafka 1.1 定位 分布式流数据平台&#xff0c;核心解决三大问题&#xff1a; 高吞吐的实时数据管道&#xff1a;支持每秒百万级消息处理。 持久化的消息队列&#xff1a;消息持久化到磁盘&#xff0c;支持多订阅者。 流式数据处理&#xff1a;与 Flink/Spark Streaming 集…...

工厂园区光储充能量管理系统解决方案——助力高效用能与低碳运营

园区痛点&#xff1a;电费高、能效低、碳排压力大 安科瑞 郭海棚 198 21380729 电费成本高&#xff1a;峰谷电价差显著&#xff0c;尖峰时段用电成本激增。设备能效低&#xff1a;老旧设备能耗高&#xff0c;缺乏实时监控与优化手段。供电稳定性差&#xff1a;生产设备突发停电…...

Windows10下Jekyll博客部署全指南|解决GitHub模板运行失败问题

场景&#xff1a;在GitHub拉取的一个Jekyll博客网站运行不起来 这是想要实现的效果 这是项目代码 概要 前置要求 git版本控制工具已安装windows10环境GitHub可以正常上网 相关问题 Jekyll博客部署常见错误GitHub模板运行失败解决方法Windows10环境变量配置Ruby版本兼容性问…...

数字IC设计-VCS和Verdi的使用

#学习记录# 前言&#xff1a;本文以一个简单的计数器来说明vcs和verdi的使用 1 代码文件 1.1 计数器代码 //Engineer&#xff1a;Mr-pn-junction module counter(input clk,input rst,output reg [5:0] count); always(posedge clk or negedge rst)beginif(!rst)coun…...

FastAPI基础知识点精要

一、核心性能优势 1. 异步编程支持 原生async/await语法‌&#xff1a;支持非阻塞IO操作&#xff0c;轻松处理高并发场景‌ASGI协议实现‌&#xff1a;基于Starlette框架构建&#xff0c;支持WebSocket等实时协议‌性能基准‌&#xff1a;测试显示响应速度比Flask快3-5倍&…...

<uniapp><websocket><http>基于uniapp,手机客户端通过websocket进行数据通讯(二维码扫码数据)

前言 本专栏是基于uniapp实现手机端各种小功能的程序,并且基于各种通讯协议如http、websocekt等,实现手机端作为客户端(或者是手持机、PDA等),与服务端进行数据通讯的实例开发。 发文平台 CSDN 环境配置 系统:windows 平台:visual studio code、HBuilderX(uniapp开…...

GitLab-获取token(访问令牌)

一、操作步骤 GitLab-获取token&#xff08;访问令牌&#xff09;主要步骤&#xff1a;以及相关截图 登录 GitLab 打开 GitLab 网站并登录你的账号。 进入用户设置 点击右上角头像 → Edit profile → 左侧菜单选择 Access Tokens。 创建 Token Token name: 输入名称&#…...

python 安装win32com.client库

win32com.client是Python中用于操作Windows COM对象的强大模块&#xff0c;特别适合与Microsoft Office应用程序(如Word、Excel、Outlook等)进行交互。 1. 安装win32com.client 需要安装pywin32库&#xff1a; pip install pywin32如果安装失败或速度慢&#xff0c;可以使用国…...

流量统计--Maven依赖

新建项目Flow 创建依赖&#xff0c;在pm.xml里添加如下内容&#xff1a; <!-- 添加hadoop-client 3.1.3的依赖--> <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>…...