Buffers
GameMaker 具有许多与创建、修改和加载 / 保存缓冲区相关的特定函数。缓冲区是物理内存的一个区域,用于在数据从一个位置移动到另一个位置或以某种方式进行操作时临时保存数据。例如,您可以使用缓冲区来保存等待通过网络传输的数据包数据或存储已通过网络接收的数据包。
使用说明
在使用 缓冲区 之前,请注意以下几点:
- 创建缓冲区时,它会自动清除并填充为0。
- 缓冲区函数的 "大小" 参数总是指缓冲区的大小(以字节为单位)。
- "对齐 " 参数是指数据如何存储在缓冲区内。如果您的对齐方式设置为 4,并且您写入大小为 1 字节的单条数据,然后执行 buffer_tell,您将获得偏移量 1。但是,如果您写入另一条数据,大小也是 1 字节,然后执行 buffer_tell,您将获得偏移量 5,因为对齐已将数据 " 填充 " 到该大小。对齐仅影响写入内容的 位置 ,因此,如果您在写入内容后执行 buffer_tell,它将返回紧随您写入的数据之后的当前写入位置。但请注意,如果您随后写入另一条数据,则在实际写入该数据之前,缓冲区内部会将写入位置移动到对齐大小的下一个倍数。
- 当处理 "offset" 时,这是字节中的值,用于在给定缓冲区内偏移数据。因此,如果您的缓冲区是2字节对齐的,并且您想跳过前4个对齐位置,则您的偏移量为2*4字节。
- 一些 buffer 函数也会创建一个新的 buffer(例如 buffer_load)。请记住,这些缓冲区在不使用时也需要使用 buffer_delete 函数从内存中删除。
- 用于创建缓冲区的内存是 系统内存 ,因此即使游戏没有焦点,存储在缓冲区中的任何数据也应该是安全的,但如果应用关闭或重新启动,这些数据就会丢失。
以下页面解释了缓冲区如何在GameMaker的上下文中工作,并为那些不确定如何使用它们的用户提供了几个代码示例:
重要信息 创建缓冲区时,会返回对新缓冲区的引用。缓冲区被销毁后,我们建议您将保存缓冲区引用的变量设置为 -1。
功能参考
常规
装载 和 保存
压缩
异步组
表面
哈希值和校验和
编码
加载 和 保存游戏状态
注意 这些函数需要之前创建一个缓冲区。
Vertex Buffers