自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hustlion 的技术博客

sum' = foldl (+) 0

  • 博客(9)
  • 收藏
  • 关注

原创 Lua 基于组件的对象系统设计与实现

Lua 基于组件的对象系统设计与实现简介MMO 中主角色属性、功能特别多。Character 类可迅速达到上万行的体量。笔者参考《饥荒:联机版》代码的角色实现,发现各种功能特性是以组件的形式添加到主体上的。使得功能组件非常清晰,复用性也很好,逻辑不会全部堆在一起,方便维护。类似以下形式:inst:AddComponent("inventoryitem")inst.components.i...

2019-07-18 14:43:58 967

原创 在 Windows 系统下 JavaCC 的 Docker 镜像制作与运行方法

在 Windows 系统下 JavaCC 的 Docker 镜像制作与运行方法简介本文介绍如何制作一个可运行 JavaCC 的 Docker 镜像及该镜像的使用办法。环境准备笔者使用的是 Win10(版本1803)。先下载好 Docker for windows 并安装,安装时选择 Linux Container。首次启动时会提示开启 Hyper-V,按提示开启即可。注意,开启 Hyp...

2019-07-17 10:14:09 353

原创 Lua LINQ 快速上手

Lua LINQ 快速上手什么是 LINQLINQ (Language Integrated Query)就是语言集成查询。Lua LINQ 库选择笔者现在找到了两种实现。一种是 xanathar/lualinq,使用说明:手册另一种是 Henkoglobin/lazylualinq。小数据量情况下(10个元素), xanathar 的 lualinq 的性能好低,笔者简单测试发...

2019-07-10 15:23:03 826

原创 基于 Rx 和 curry 的延迟调用队列在 Lua 中的实现

基于 Rx 和 curry 的延迟调用队列在 Lua 中的实现简介本文是基于函数式编程 curry 概念的 Lua 函数调用暂存机制 的泛化包装,提高了通用性。此实现利用了 ReplaySubject 在 subscribe 时会把所有消息重放的特性。主要用法:-- 引用库require('delayedInvocationQueue')-- 创建对象。fn: 是否调用真正对象的判断...

2019-07-10 14:14:33 658

原创 Cocos 检查 Lua 文件是否存在

以下函数可以用 require 的路径格式来检测 lua 文件是否存在:local function isLuaModuleExist(moduleName) local convertedModuleName = moduleName:gsub('%.', '/') local path = 'src/'..convertedModuleName..'.lua' return cc...

2019-07-09 22:11:12 1437

原创 Lua 自动属性实现

Lua 自动属性实现在 MMORPG 游戏中,玩家具有非常多的属性,有多数情况下这些属性都是从服务器获取然后不需要经过运算即可展示。在项目规范较好的情况下,不会直接取用存储的数值而是使用 getter, setter。但是这些没有额外逻辑的 getter setter 写起来很麻烦。所以笔者利用 lua 灵活的机制实现了一个简单的自动属性特性。具体如下。实现使用时将要自动生成的属性传给...

2019-07-09 11:59:48 1521

原创 基于函数式编程 curry 概念的 Lua 函数调用暂存机制

基于函数式编程 curry 概念的 Lua 函数调用暂存机制引子客户端代码收到服务器多条消息,其中有一条主消息和多条补充修改此主消息的补充消息。但是在实际使用时,发现有些补充消息比在主消息先到达客户端。所以我们需要把这些“补充消息”先暂存起来。一种实现方式是制作一个数据缓存,约定一种数据结构把先到达的数据先存好,在主消息到达后再去按照约定的结构一项一项把数据更新到主消息中。这种方式有效...

2019-07-09 11:03:07 407

原创 Lua 实现函数式编程中的 Curry 特性

核心思路就是构造一个 argt 表,先把 bound 指定的位置参数填充,再把后来提供的参数填入空格。代码如下,直接保存为 curry.lua 然后 require 即可。用例见注释:--[[ summary: a simple implementation of curry functions author: Hustlion(hustlion_dev@163.com) date...

2019-07-08 17:23:20 486

原创 Flutter iOS 以 dev 证书打 release 包的方法

关键点:flutter 编译配置要显式指定 release。flutter cleanflutter build ios# 然后 XCode 打开项目,找到 Flutter/Generated.xcconfig 文件# 在文件最后加上FLUTTER_BUILD_MODE=release# 然后 archive# 最后导出时,选择 Development 而不是 App Store...

2019-07-08 11:44:02 4075

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除