- 博客(62)
- 收藏
- 关注

原创 UE5-----物理系统
在 Unreal Engine (UE) 中,Niagara 是一个粒子系统和视觉效果编辑器,用于创建高质量的实时粒子效果。Niagara 在 Unreal Engine 4.17 版本中首次推出,取代了之前的粒子系统,旨在提供更强大的性能和更高的灵活性。
2024-08-28 17:27:33
1055

原创 游戏客户端学习笔记
指针函数实际上是指向函数的指针,它存储了一个函数的地址。有时我们说的“指针函数”可能是指返回指针的函数,即函数的返回类型是一个指针。这样的函数在调用后会返回一个指向某处的指针。- **返回指针的函数**(有时称为“指针函数”)是返回一个指针类型的函数,该指针可能指向动态分配的内存或其他地方的内存。在C++中,“指针函数”和“函数指针”是两个容易混淆的概念,尽管它们都与函数和指针有关,但它们代表的是完全不同的东西。- **函数指针**是一个指向函数的指针,可以用来保存并调用任何具有相同签名的函数。
2024-08-09 06:25:06
497

原创 c++ 基础学习笔记
还支持使用一个可选的二元操作符(即用户定义的累加逻辑),这样就可以实现比简单的求和更复杂的操作。开始,依次将容器中每个元素与累积的和相加,直到遍历完所有元素,最后返回总和。等)中的元素进行累加求和,也可以用于其他可迭代范围。这段代码将输出数字1到5的和,即15。这里是一个具体的例子,展示了如何使用。是C++标准库中的一个函数,位于。它主要用于对容器(如。
2024-07-14 09:13:48
408

原创 UE5-虚幻引擎学习笔记
对于Fortnite短片,Epic决定使用比游戏更高精度的模型,更高精度的模型增加动画。因为对于角色头部新的绑定和动画方式的需要,头部模型网。不同,但网格拓扑结构是类似的。扑结构方式缩短了绑定和动画的时间,因为类似绑定可以被。工具可以自动加面,但新增加的多边形必须手动调整使。增加精度的同时会增加回放动画时内存的开销。角色绑定需要同时调整甚至重做来匹配更高精度的模型。高精度角色在短片中实时的变形动画和游戏里的非常不。同,这意味着低模上的绑定和关键帧也需要被调整。表现,在加面的同时也带来一些其他的考量。
2024-07-06 08:02:15
1143
原创 C++ 内存
在面向对象编程中,类是创建对象的蓝图,而对象则是类的具体实例。每个对象都有自己的内存模型,用于存储其数据成员(属性)和指向其方法的指针。
2025-01-01 16:49:41
483
原创 C++内存泄漏检测
不过,你可以通过定义一个具有相同名称的新函数来实现类似的效果,这种技术通常被称为函数隐藏或函数替换。### 2. 使用包装函数创建一个新的函数来封装`malloc`,并在其中加入你想要的功能。3. 替换全局操作符new/delete对于C++对象,更推荐的方式是重载全局的`new`和`delete`操作符,这可以让你控制所有对象的内存分配与释放过程。这种方法简单直接,但会影响整个程序中的所有`malloc`调用。- 当覆盖默认的内存管理函数时,请确保你的实现是线程安全的,特别是当你在多线程环境中工作时。
2024-12-01 11:06:57
192
原创 游戏客户端——物理,图形算法
在游戏开发中,物理和图形算法是构建逼真体验的关键。以下是一些常见的物理与图形相关的算法和技术,以及一些简单的代码示例来帮助理解它们是如何实现的。
2024-11-29 10:43:48
195
原创 游戏客户端开发——网络性能优化
以上代码示例展示了如何在网络游戏中进行数据压缩、使用UDP协议、发送心跳包、数据包合并以及异步IO操作。这些技术可以显著提高网络性能,提升玩家的体验。对于实时性要求高的游戏,使用UDP协议可以减少延迟。UDP是无连接的,不会保证数据包的顺序和完整性,但可以通过应用层实现必要的可靠性机制。在网络游戏中,网络性能优化是一个至关重要的环节,因为它直接影响到玩家的体验。以下是一些常见的网络性能优化技巧及其对应的C++代码示例。只发送必要的数据,避免发送冗余信息。例如,只发送玩家移动的方向和速度,而不是每帧的位置。
2024-11-21 18:09:51
1014
原创 C++算法题练习
在一个班级中,每位同学都拿到了一张卡片,上面有一个整数。有趣的是,除了一个数字之外,所有的数字都恰好出现了两次。现在需要你帮助班长小C快速找到那个拿了独特数字卡片的同学手上的数字是什么。
2024-11-15 14:44:50
158
原创 UE5-----MenuSystem
如果菜单系统中包含了一个可见的角色,那么 AMenuSystemCharacter 可能负责管理这个角色的动画状态,例如闲置、选择动作或其他视觉反馈。:此类可能重写了输入处理函数,以便响应用户的键盘、鼠标或控制器输入,使用户能够在不同的菜单项之间导航。:它还可能包含了一些状态管理的功能,比如跟踪用户当前在哪个菜单页面,或者记录用户做出的选择等。:该类可能包含了与用户界面(UI)进行交互的逻辑,比如处理菜单选项的选择、游戏设置的调整等。要加*SessionName。
2024-11-11 16:41:33
398
原创 多个玩家在线游戏
客户端-服务器架构,其中一个中央服务器处理所有玩家之间的通信和数据同步。这种架构更常见于大型在线游戏,因为它可以提供更好的控制、安全性和可扩展性。点对点网络,其中每个玩家的游戏客户端直接与其他玩家的游戏客户端通信。这种架构通常用于小型或中型规模的多人游戏。
2024-11-02 13:07:54
263
原创 UE ---- 射击游戏
以上代码只是一个基础示例,实际应用中可能还需要考虑更多的因素,比如玩家当前的速度、方向等,以及更复杂的动画逻辑。如果你还没有为角色创建一个自定义的C++类,可以通过Unreal Editor中的“Add Code to Project”选项来生成一个继承自`ACharacter`的新类。你需要在项目的输入设置中配置"StartTilt"和"StopTilt"的动作绑定,以便能够触发倾斜开始和停止的行为。首先,确保你的项目中已经启用了C++支持,并且你熟悉基本的Unreal Engine C++编程。
2024-10-27 23:03:35
386
原创 Stm32单片机
通过上述代码和说明,你可以实现一个简单的智能机械键盘,能够检测按键按下并发送相应的键盘报告。process_key_event 函数创建一个键盘报告,并通过USB HID发送该报告。去抖动处理:在实际应用中,可能需要增加去抖动处理,以消除由于机械振动引起的误触发。如果检测到压力值超过阈值,调用 process_key_event 函数处理按键事件。MX_USB_DEVICE_Init 函数初始化USB设备,确保可以进行HID通信。在主循环中,遍历所有的行和列,读取每个按键的压力传感器值。
2024-09-23 16:06:19
1096
原创 游戏服务器知识
通过上述措施,开发者可以在很大程度上保证服务器对重要游戏逻辑拥有最终决定权,同时提升整个系统的安全性与稳定性。不过需要注意的是,没有任何系统是完全无懈可击的;因此,持续改进和完善始终是必要的。在多人在线游戏中,确保服务器对所有较为重要的游戏逻辑保持最高权限是至关重要的。这样可以防止作弊、保证游戏公平性以及维护一致的游戏体验。
2024-09-22 05:50:02
296
原创 不要死磕技术,还是要产品化
您的观点非常有道理。2. **注重用户体验**:即使是最先进的技术,如果用户体验不好,也难以成功。1. **理解市场需求**:首先明确目标用户是谁,他们面临什么问题,以及你的产品如何解决这些问题。5. **营销与推广**:好的产品也需要有效的营销策略才能让更多人知道。7. **持续学习**:技术和市场都在不断发展变化中,保持好奇心,紧跟最新趋势,定期评估自己的产品是否仍然满足用户需求。6. **团队建设**:建立一个跨功能团队,包括产品经理、设计师、工程师等角色,共同协作完成从概念到市场的全过程。
2024-09-21 21:29:36
409
原创 UE5——在线子系统
Unreal Engine 5 (UE5) 的在线子系统(Online Subsystem)实现多人在线游戏的原理涉及到网络编程和分布式系统设计中的多个方面。
2024-09-20 06:43:56
880
原创 游戏性能优化
使用终端命令`sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist`来停止交换文件服务,然后使用`sudo diskutil erasevolume APFS "Swapfile" /dev/disk2`创建一个新的交换文件(这里的`/dev/disk2`需要替换为你想要使用的磁盘)。#### 分配和释放内存。- **减少不必要的后台进程**:关闭不需要的应用程序和服务,减少对内存的占用。
2024-09-13 05:57:45
1209
原创 UE5——笔刷Brush工具
在游戏开发中,特别是使用某些游戏引擎如Unreal Engine时,“笔刷”(Brush)是一种特殊的Actor(游戏世界中的一个实体),用于描述3D几何形状,如立方体、球体或其他基本几何体。笔刷主要用于构建游戏世界的静态几何体,尤其是在早期的关卡设计阶段。以下是关于笔刷的一些详细说明:### 笔刷的作用1. **关卡几何体**:笔刷被用来创建游戏世界的静态几何体,例如墙壁、地板、天花板等。这些几何体构成了游戏环境的基础结构。
2024-09-12 04:36:02
1845
原创 游戏开发——gameplay框架
**状态机(State Machines)**:用于管理游戏角色或物体的不同状态及其转换,例如玩家角色可以在“行走”、“攻击”、“跳跃”等状态之间切换。- **脚本系统(Scripting Systems)**:允许非程序员通过脚本语言编写游戏逻辑,以增加游戏内容的灵活性。- **数据驱动(Data-Driven)**:使用配置文件或数据库来存储游戏规则和逻辑,使得游戏逻辑更加灵活,易于调整。- **事件系统(Event Systems)**:处理游戏中发生的事件,如碰撞检测、用户输入响应等。
2024-09-12 04:27:14
515
原创 UE5滚轮实现第一和第三视角的切换
在`SwitchCamera`事件图表中,根据`bIsFirstPerson`的值切换两个摄像机的状态,并反转`bIsFirstPerson`的值。- 在`Event BeginPlay`节点中设置`bIsFirstPerson`为`true`,并启用第一人称摄像机,禁用第三人称摄像机。在项目的`输入`设置中,添加一个新的动作映射`SwitchPerspective`,并将其绑定到鼠标滚轮的上下滚动。- 在`Event BeginPlay`中初始化`bIsFirstPerson`为`true`。
2024-09-10 17:18:08
1219
原创 游戏的3C,Al
在游戏开发中,“3C”通常指的是三个重要的组成部分:Character(角色)、Camera(摄像机)和Control(控制)。这三者对于创建沉浸式和流畅的游戏体验至关重要。而AI(人工智能)则是指在游戏中实现智能行为的技术,它可以应用于各种角色,包括NPC(非玩家角色)和其他游戏元素。
2024-09-09 17:23:03
844
原创 骨骼动画原理图
骨骼动画(Skeleton Animation)是一种广泛应用于3D动画和游戏中的技术,它允许动画师高效地创建复杂的动画效果。这种技术的核心思想是通过一组连接起来的“骨骼”来控制模型的各个部分,从而实现自然流畅的动作。
2024-09-09 15:44:48
544
原创 UE5引擎工具链知识点
6. **跨平台开发**:由于游戏可能需要在多个平台上运行(PC、主机、移动设备),因此需要考虑不同平台之间的差异并编写可移植代码。2. **图形学**:深入理解计算机图形学原理,包括3D渲染管线、着色语言(如GLSL或HLSL)、光照模型、纹理映射等。3. **物理引擎**:了解刚体动力学、碰撞检测、约束求解等基本概念,能够实现或集成物理引擎来模拟现实世界中的物体行为。8. **API与SDK集成**:能够整合外部服务和库到自己的项目中,比如社交网络登录、在线成就系统、云存储解决方案等。
2024-09-06 21:15:22
709
原创 黑神话定身效果
在UE5中使用蓝图来实现“黑神话”风格的怪物定身效果是一种有趣的设计。这种效果通常指的是怪物在受到特定攻击或技能时被冻结在原地,无法移动或进行其他动作。下面是一个简单的步骤指南,帮助你在UE5中使用蓝图来实现这种效果。
2024-08-29 21:24:23
467
1
原创 Python----爬虫
开发一个比价系统来监控和分析电商平台的商品价格,可以帮助商家了解市场动态,避免不必要的价格战。这样的系统通常包括以下几个关键组件:1. 数据抓取(Web Scraping): - 使用爬虫技术从各大电商平台抓取商品信息,包括名称、价格、促销信息等。 - 需要处理反爬机制,例如设置合理的请求间隔、使用代理IP、模拟浏览器行为等。2. **数据清洗**: - 清洗抓取的数据,去除无效或重复的信息,统一数据格式,便于后续处理。3. **数据分析**: - 分析商品价格趋势,识别
2024-08-16 10:27:34
2220
1
原创 C++程序题
读入三个正整数 `n`, `k`, `x`,以及 `n` 个整数 `a_1, a_2, \ldots, a_n$。- 遍历数组 `a`,比较删除单个元素和删除整个数组的成本,选择成本较低的操作并更新答案变量 `ans`。注意:由于题目要求求解的是最小代价,因此需要对数组进行排序以确保每次都能选择成本较低的操作。这里有一个可能的解决方案:```cpp。- 初始化答案变量 `ans` 为零。- 初始化计数器数组 `b` 为零。- 对数组 `a` 进行排序。- 输出答案变量 `ans`。
2024-08-10 11:32:25
220
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人