CSAPI

CSAPI
凝雨数据结构
线程概念
- 并发 分配时间
- 并行 多核运行 计算量密集
- 同步 需要等待
- 异步 不需要等待 网络操作
| 英文名 | 中文名 | 描述 |
|---|---|---|
| Queue | 队列 | |
| Stack | 栈 | |
| Dictionary<TKey, TValue> | 字典 | |
| List | 动态数组/列表 | |
| array | 普通数组 |
队列(Queue)
事件队列:游戏中经常会有各种事件需要按顺序处理,如用户输入、AI行为、动画帧等。这些事件可以被放入一个队列中,然后按照它们被添加的顺序进行处理。
渲染队列:在图形渲染中,对象可能需要按照特定的顺序进行渲染(例如,先渲染背景,再渲染前景)。通过将渲染任务放入队列中,可以确保它们按照正确的顺序执行。
音频队列:在游戏中,可能需要播放多个音频文件,如背景音乐、音效等。通过使用队列,可以确保音频文件按照正确的顺序播放,并且不会出现重叠或混乱。
网络消息队列:在网络游戏中,客户端和服务器之间需要传递大量的消息。这些消息可以被放入队列中,然后按照接收的顺序进行处理。这有助于确保消息的及时处理和同步。
AI寻路:在某些情况下,AI角色可能需要按照特定的顺序访问多个目标点。通过将目标点放入队列中,AI可以依次访问它们,而不会错过或跳过任何一个。
栈(Stack)
撤销/重做功能:许多游戏都提供了撤销或重做玩家操作的功能。这可以通过使用栈来实现。当玩家执行一个操作时,可以将该操作的状态信息压入栈中。如果玩家选择撤销操作,可以从栈中弹出最近的状态信息,并将游戏恢复到该状态。同样地,重做功能可以通过再次将状态信息压入栈中来实现。
递归算法:在游戏开发中,递归算法经常被用于处理复杂的逻辑问题,如树的遍历、图的搜索等。栈是递归算法的重要工具,因为它可以保存函数调用的上下文信息(如局部变量和返回地址),以便在函数返回时能够正确地恢复这些信息。
UI导航:在某些UI界面中,如菜单或对话框,用户可能需要通过一系列层级进行导航。栈可以用于跟踪用户的导航历史,以便在用户点击“返回”按钮时能够返回到上一个层级。
动画状态管理:在游戏中,角色的动画状态可能会根据角色的行为或环境条件而发生变化。通过将不同的动画状态压入栈中,并在需要时弹出它们,可以实现复杂的动画状态管理。
内存管理:在某些情况下,栈也可以用于内存管理。例如,在编写一些需要频繁分配和释放小块内存的代码时,可以使用栈来存储这些内存块,以减少内存碎片和提高内存访问速度。然而,需要注意的是,栈的大小通常是有限的,因此不能用于存储大量数据或长期存储数据。
Array
简介
普通数组,
Add
AddRange<>
Array()
Array.Array(Godot.Variant[])
Array.Array(System.Collections.Generic.IEnumerable<Godot.Variant>)
Array.Array(System.ReadOnlySpan<Godot.GodotObject>)
Array.Array(System.Span<Godot.NodePath>)
Array.Array(System.Span<Godot.Rid>)
Array.Array(System.Span<Godot.StringName>)
Array.BinarySearch(Godot.Variant)
Array.BinarySearch(int, int, Godot.Variant)
Array.Clear()
Array.Contains(Godot.Variant)
Array.CopyTo(Godot.Variant[], int)
Array.Dispose()
Array.Dispose(bool)
Array.Duplicate(bool)
Array.Fill(Godot.Variant)
Array.GetEnumerator()
Array.GetSliceRange(int, int, int, bool)
Array.IndexOf(Godot.Variant)
Array.IndexOf(Godot.Variant, int)
Array.Insert(int, Godot.Variant)
Array.LastIndexOf(Godot.Variant)
Array.LastIndexOf(Godot.Variant, int)
Array.MakeReadOnly()
Array.Max()
Array.Min()
Array.PickRandom()
Array.RecursiveEqual(Godot.Collections.Array)
Array.Remove(Godot.Variant)
Array.RemoveAt(int)
Array.Resize(int)
Array.Reverse()
Array.Shuffle()
Array.Slice(int)
Array.Slice(int, int)
Array.Sort()
Array.ToString()
当然,以下是将这些
Godot.Collections.Array的方法写为Markdown文件,每个方法使用二级标题(##)的格式:
1 | # Godot.Collections.Array 方法 |














