《Game Programming Patterns》学习笔记 - 命令模式

GoF 中的定义:

将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。

命令模式是一种回调的面向对象实现。

简而言之,便是将 “操作” 封装为类,将其实例化为对象后作为 “第一公民” 对待,一个通俗易懂的应用便是如绘图软件中的 Ctrl+Z 撤销功能

阅读更多

Lua 的开源 JSON 解析库 LuaJSONLib

开源了一个 Lua 的 JSON 解析库 LuaJSONLib,基于 cJSON
效率比较高,在关闭嵌套层数限制的情况下,每秒可以递归解析 1500 层 JSON 数据
项目链接:https://github.com/VoidmatrixHeathcliff/LuaJsonLib

API 总览

名称 功能
value = Load(str) 将已编码的 JSON 对象解码为 Lua 对象
value = LoadFromFile(path) 将指定路径文件中已编码的 JSON 对象解码为 Lua 对象
str = Dump(value [, isFormat=false]) 将 Lua 对象编码成 JSON 字符串
DumpToFile(value, path [, isFormat=false]) 将 Lua 对象编码成 JSON 字符串并存储到指定路径的文件中
阅读更多

SDL2入门 - 常用功能简明笔记

常用第三方库:

  • SDL2_ttf 用来处理文本显示
  • SDL2_mixer 用来处理扩展格式的音乐(譬如MP3等)
  • SDL2_image 用来加载带有透明通道的图片等

初始化

1
2
3
#include <SDL.h>

SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO); // 初始化视频和音频

创建窗口

1
2
3
4
5
6
7
8
9
10
11
12
#include <SDL.h>


#define WINDOW_WIDTH 窗口宽度
#define WINDOW_HEIGHT 窗口高度


SDL_Window* window = SDL_CreateWindow(
"窗口标题",
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, // 分别表示窗口位置的x坐标和y坐标,使用内置常量SDL_WINDOWPOS_UNDEFINED表示窗口显示在默认位置
WINDOW_WIDTH, WINDOW_HEIGHT, // 分别表示窗口的宽度和高度
SDL_WINDOW_SHOWN); // 表示立即显示此窗口
阅读更多