众所周知,UE 没有提供优先队列这一常用容器。 但是在 TArray 中有一些堆函数,可以实现优先队列的操作。 这里提供一个简单封装,其中 Priority 值越小优先级越高。 template<typename ElementType, typename ArrayAllocator = FDefaultAllocator> class TRFurPriorityQueue { public: FORCEINLINE TRFurPriorityQueue() = default;

Read More

目录1 换源2 安装依赖包3 处理 install.sh4 安装5 启动蜜罐 国内原因 Github连接极其卡顿 虚拟机重复安装五六次还未成功。今早终于成功,有感写下这篇教程 环境:Debian 10 设备:华为ECS 2核8G 50M 流量计费 VNC控制台安装 T-Pot 项目链接 换源 Linux一键换源 bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh) apt

Read More

目录1 加锁的原则1.1 规则10.1 多线程 进程并行访问共享资源时 一定要加锁保护1.2 规则10.2 锁的职责单一1.3 规则10.3 锁范围尽量小 只锁对应资源操作代码1.4 规则10.4 避免嵌套加锁 如果必须加锁 务必保证不同地方的加锁顺序是一样的1.5 建议10.1 进程间通讯 使用自己保证互斥的系统1.6 建议10.2 可重入函数尽量只使用局部变量和函数参数 少用全局变量 静态变量1.7 建议10.3 锁中避免调用函数 如果必须调用函数 务必保证不会造成死锁1.8 建议10.4

Read More

一键跳转至题目 题目描述 机器上有 $n$ 个需要处理的任务,它们构成了一个序列。这些任务被标号为 $1$ 到 $n$,因此序列的排列为 $1 , 2 , 3 \cdots n$。这 $n$ 个任务被分成若干批,每批包含相邻的若干任务。从时刻 $0$ 开始,这些任务被分批加工,第 ii 个任务单独完成所需的时间是 $T_i$ 。在每批任务开始前,机器需要启动时间 $s$,而完成这批任务所需的时间是各个任务需要时间的总和。 注意,同一批任务将在同一时刻完成。 每个任务的费用是它的完成时刻乘以一个费

Read More

目录1 研究背景2 研究内容2.1 框架设计2.2 实现方法与步骤2.3 出现的问题与解决过程2.4 项目创新点3 研究结果3.1 核心代码3.2 实物展示3.3 结论4 参考文献 本文用来水暑假的研究性学习报告 不要认真 摘要 本文给出了朴素 Marching Cubes 算法体素网格体在 Unreal Engine 4 中的实现方案,通过生成一个具有“光滑”表面的球体来演示算法的可行性。 关键词 MarchingCubes UnrealEngine 网格重建 游戏开发 研究背景 《Minec

Read More

目录1 研究背景2 研究内容2.1 框架设计2.2 实现方法与步骤2.3 出现的问题与解决过程2.4 项目创新点3 研究结果3.1 实物展示3.2 结果分析3.3 结论4 参考文献 本文用来水暑假的研究性学习报告 摘要 本文给出了一种基于 HFish 的网络威胁捕捉与诱骗系统的简单搭建模式,并通过此系统捕捉了当今互联网上的部分网络攻击,通过这些数据进行简单的整理分析,透漏出网络中的潜在威胁。 关键词 网络安全 黑客攻击 网络攻防 密码破译 研究背景 作为一个小型个人网站的站主,可能并不会感觉到自

Read More

目录1 UMaterialExpression2 UMaterialExpressionSphereMask2.1 输入输出引脚定义2.2 参数缺省定义2.3 编译函数实现3 类与函数 引擎: UE4.26.2 构建版本 事情的起因是写体素构建器的时候,想生成个球,就想到抄材质的 SphereMask 节点。 这里以 SphereMask 节点为例,分析材质蓝图节点的定义。 UMaterialExpression 材质节点的 C++ 父类为 UMaterialExpression ,定义在 Ma

Read More

目录1 基本信息2 硬件连接图3 软件框图3.1 小车3.2 控制端4 软件流程图4.1 小车 测速计数 线程4.2 小车 超声 线程4.3 小车 电机 线程4.4 小车 图像采集 线程4.5 小车 UDP 线程4.6 控制端5 实现过程6 关键代码7 创新点8 市场前景9 产品展示 这是 2021年山大未来科学营(夏季)- 人工智能与发明创造未来科学营 的作业 所以看看就行 基本信息 名称:远程智能房间巡逻警报机器人 解决家里/房间长期无人,但是有设备运行或其他需求,需要远程监控。可以方便远程

Read More

Establish Battlefield Control, Stand By — 战场控制建立,请等待。 Battle Control Online — 作战控制连线。 Incoming Transmission — 信号输入。 New Objective Received — 收到新的任务目标。 Objective Complete — 任务目标完成。 Mission Accomplished — 任务完成。 Missi

Read More

CornerCoordOffset[8] – 表示顶点索引到顶点空间位置的映射,如 CornerCoordOffset[0] = (0,0,0) 表示 顶点-0 的位置是 (0,0,0) 。 Triangulation[256][5][3] – 表示三角形拆分,可以通过顶点状态(通过位掩码)拆分三角形,得到三角形对应的边索引,如 Triangulation[2][0][0] = 0 表示 顶点-1 在“内部”其余顶点在“外部”时,第一个三角形的第一个顶点在 边-0 上。

Read More

目录1 语法1.1 类2 定义类3 定义类成员3.1 返回值3.2 泛型类型3.3 修饰4 定义关系4.1 关系的基数5 类注释6 评论 基于 Mermaid 类图规范编写: Mermaid: Class diagrams “在软件工程中,统一建模语言 (UML) 中的类图是一种静态结构图,它通过显示系统中的类以及它们的属性和操作(或方法)再加上类之间的关系来描述系统的结构。” 维基百科 类图是面向对象建模的主要构建基础。它可以用于应用程序一般结构的概念建模,以及将模型转换为编程语言代码的详细建

Read More

InsideUE4 – Unreal C++ 基础、 GamePlay 架构。 手摇虚幻引擎 – 拆解 Unreal 引擎源代码,分享一些骚操作。 剖析虚幻渲染体系 – Unreal 渲染体系、渲染管线、多线程。 C# and Shader Tutorials for the Unity Engine – Unity C# 及 着色器 系统教程。 GAMES 系列课程 – 图形学、模型重建、物理引擎直到游戏引擎。

Read More

目录1 类图1.1 UStaticMesh 类图1.2 UStaticMeshComponent 类图2 流程2.1 动态构建流程2.2 网格应用流程2.3 渲染整合流程 引擎: UE4.26.2 构建版本 StaticMesh 简称 SM ,表示引擎中的 静态网格体 ,在新版本的引擎中, SM 也被允许在运行时构建,渲染一个 SM 需要 SMC 的支持, SMC 使用 静态/动态渲染路径 ,在允许的情况下优先使用 静态渲染路径 ,会缓存所有渲染命令。 类图 UStaticMesh 类图 cla

Read More

目录1 类结构1.1 游戏 类图1.2 渲染器 类图1.3 简介2 流程2.1 分段创建流程2.2 渲染整合流程2.3 碰撞构建流程2.4 分段更新流程 引擎: UE4.26.2 构建版本 ProceduralMeshComponent 简称 PMC ,提供一个程序化网格组件,可以通过自定义的三角形制作可渲染网格,使用动态渲染路径,在每帧收集渲染数据,没有任何数据缓存。 类结构 游戏 类图 classDiagram Interface_CollisionDataProvider <|..

Read More

多人联机吃鸡小游戏 多人联机跳跳大作战 多人联机碰碰大作战 多人联机领地大作战 多人联机星爆大作战 多人联机巷口大作战 多人在线摆锤大作战 多人联机策略大作战 多人联机海盗大作战 多人联机动物大作战 多人联机战舰大作战 多人联机物理大作战 多人联机僵尸大作战 多人联机切菜大作战 多人联机飚车大作战 多人联机圈地大作战 多人联机坦克大作战 多人联机撞击大作战 多人联机突突大作战 多人联机冲冲大作战 多人联机消除大作战 多人联机空中大作战 多人联机斧头大作战 多人联机坦克大作战 多人联机蛇蛇大作战

Read More

为了防止 ICP 信息硬编码,试图修改主题 PHP 代码时发现,主题自带一个底部社交菜单,但是社交菜单会把菜单项换成图片,此操作是完全通过 CSS 代码进行的,所以只需要在自定义 CSS 中加入下面的 CSS 代码,即可覆盖。此代码通过重置社交区域的 li a 标签设置使其恢复文本显示。 .social-menu li a { all: revert; all: unset; } .social-menu { display: -webkit-box; display: -ms-flexbox;

Read More

洛谷P4781 题解公式 inline int FastPow(int x, int y) { if (y == 1) return x; if (!y) return 1; int tmp = FastPow(x, y >> 1) % mod; return tmp * tmp % mod * (y & 1 ? x : 1) % mod; } inline void Lagrange() { go(i, 1, n, 1) { up = down = 1; go(j, 1,

Read More

原文传送门 FRunnable & FRunnableThread FRunnable提供了最为原始的线程支持,类似std::Thread,虽然没那么优雅,但是功能略多于std::Thread FRunnable—-承载业务逻辑 +[f] Init : 初始化,可以失败 +[f] Run : 线程运行函数,返回退出代码 +[f] Stop : 提前终止这个线程 +[f] Exit : 进行退出前的清理 +[f] GetSingleThreadInterface : 平台不支持

Read More

使用 Tarjan 算法 lli fa[maxn]; lli dfn[maxn]; lli low[maxn]; bool cut[maxn]; void tarjan(lli u) { dfn[u] = ++cnt; low[u] = dfn[u]; lli child = 0; for (lli i = 0; i < mp[u].size(); ++i) { lli v = mp[u][i]; if (!dfn[v]) { ++child; fa[v] = u; tarjan(v);

Read More

约定存边方式为从左部到右部的有向边,左右部点编号相同 匈牙利算法 lli mch[maxn]; lli vis[maxn]; bool dfs_hun(lli u, lli dfn) { if (vis[u] == dfn) return false; vis[u] = dfn; for (lli i = head[u]; ~i; i = edge[i].nxt) { lli v = edge[i].v; if (mch[v] == 0 || dfs_hun(mch[v], dfn)) { mc

Read More

lli n; lli arr[maxn]; lli lg[maxn]; lli st[maxn][32]; inline lli flg(lli x) { if (lg[x]) return lg[x]; lli tmp = x; lli res = 0; while (tmp) tmp >>= 1, ++res; return lg[x] = res – 1; } inline void init_st() { for (lli i = 1; i <= n; ++i) st[

Read More

题目传送门 性质 删除重心后所得的所有子树,节点数不超过原树的1/2,一棵树最多有两个重心;2.树中所有节点到重心的距离之和最小,如果有两个重心,那么他们距离之和相等; 两个树通过一条边合并,新的重心在原树两个重心的路径上; 树删除或添加一个叶子节点,重心最多只移动一条边; 一棵树最多有两个重心,且相邻。 思路 如果找到只有一个重心,那么直接删一个重心的直连边然后加回去就好了。 如果找到两个重心,那么在其中一个重心上找到一个直连点不是另一个重心,删除连另外一个就好了。 如何求树的重心? 先任选一

Read More