Windows 下编译安装 Lua 5.3.5

目标 在 Windows 下编译安装 Lua 5.3.5。 环境 * Microsoft Windows 10 企业版 10.0.14393 版本 14393 方法 推荐在 C:\ 下面建立一个 local 文件夹,用于像 linux 下 /usr/local 或者 /opt 一样来安装自定义的工具和库。 1. 下载 MinGW Distro,这是 MinGW 的一个便捷版,可以免去平常安装 MinGW 了再从 mirror 上拉取软件包的麻烦操作。此处下载 https://nuwen.net/files/mingw/mingw-16.0.exe 2. 双击 mingw-16.
Read More

在 Lua 中实现类似于 Swift Extension 的机制

本文目标 本文在 Lua 中实现类似于 Swift Extension 的机制,使得在不改变类继承关系、不进行重复代码实现的前提下,实现一些函数的复用。主要作用是减少代码重复。主要思路是在运行时将作为 extensionClass 的表的元素依次拷贝到目标类中。 软件版本 * Lua 5.1.5 代码 遍历扩展类/表,将其中的对象依次拷贝到目标类中。具体实现如下: 1 2 3 4 5 6 7 8 function extendClass(extensionDestinationClass, extensionSourceClass) for k, v in pairs(ex
Read More

显示文件名与行号、多等级、多输出打印、支持循环表的 Lua 打印器模块实现

模块简介 本文提供一款在 Lua 中实现的显示文件名与行号、多等级、多输出打印、支持循环表的打印器模块。此模块主要参照《饥荒:联机版》 Lua 源码改写完成,在此表示感谢。 环境 * Lua 5.1.5 模块特性 * 支持多种输出级别,比如 Error Warning, Info * 支持所有 Lua 类型,包括循环表 * 支持输出到多个目标,例如同时输出到终端及某个集合中(例如饥荒的游戏内控制台) * 支持显示打印函数所在文件名与行号(支持开启和关闭) 使用方法 * 使用前require("debugPrint"),然后正常使用 print. * 将 PRINT_SOUR
Read More

Unity UGUI绘制任意形状的基础——在代码中通过顶点绘制正方形

目标 在代码中通过顶点绘制正方形。基于这一技术,可以通过提供更多顶点绘制出任意形状。 环境 * Unity 2018.1.5f1 Personal (64bit) 方法 继承 UnityEngine.UI.Graphic 来获得顶点操纵的能力: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 using System.Collections; using System.Collections.Gen
Read More

Python3 将十六进制数据解析为 UTF-8 字符

目标 将十六进制数据解析为 UTF-8 字符。 环境 * Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32 方法一 1 2 3 hexstring = b'\xe7\x8e\xa9\xe5\xae\xb6\x33\x38\x35' hexstring.decode('utf-8') # 玩家385 方法二 1 2 3 4 5 import codecs hexstring = r'\xe7\x8e\xa9\xe5\xae\xb6\x33\x3
Read More

Unity 通过代码加载标准材质

目标 使用代码给物体加载标准材质。这在给 Empty 加材质时比较有用,有利于减少在 Unity 编辑器中的操作。 环境 * Unity 2018.1.5f1 Personal (64bit) 方法 在挂载在 Empty 上的 Monobehavior 脚本的 Start 方法或其他生命周期方法中: 1 2 var renderer = gameObject.AddComponent(); renderer.material = new Material(Shader.Find("Standard")); 如果已经有 Renderer,就可以用 Ge
Read More

Unity RectTransform 的 anchoredPosition 与 position 属性辨析

问题/目标描述 本文对 Unity UGUI 元素 RectTransform 的 anchoredPosition 与 position 属性进行辨析和举例说明。 针对的软件版本/体系 * Unity 2018.1.5f1 区别和联系 对于 UGUI 元素来说,RectTransform.anchoredPosition (Vector2) 是相对于anchor来设置的位置。RectTransform.position (Vector3) 是三维坐标(in world space),是相对于世界原点的。 举例说明 已知 e.Position 是触摸或点击事件提供的屏幕坐标(Vecto
Read More

Unity UGUI 血条实现

本文目标 在 Unity 中使用 UGUI 制作角色血条,实现血条跟随玩家模型的效果。 通过使用动态加载的 Slider,动态计算目标模型的头部位置世界坐标在屏幕空间的对应点位置来实现。 另外一种实现是使用 World Canvas 将血条直接绑定到玩家模型上,对此实现方法本文不作描述。 软件版本 * Unity 2018.1.5f1 Personal (64bit) * Visual Studio 2017 接口/数据 HealthBar 提供锁定对象的功能,传入要跟踪对象的引用即可。对生命值的设定进行了简单的封装,也可以直接获取 Slider 组件设置 value 和 maxVa
Read More

Jekyll Sass Invalid GBK character 解决办法

问题 1 2 3 4 5 Incremental build: disabled. Enable with --incremental Generating... Conversion error: Jekyll::Converters::Scss encountered an error while converting 'assets/main.scss': Invalid GBK character "\xE8" on line 19 jekyll 3.8.1 | Error: Invalid GBK character "
Read More