• 等级
  • 812377 访问
  • 170 原创
  • 28 转发
  • 3163 排名
  • 433 评论
  • 197 获赞

python Png图片压缩工具

引言 最近在做 H5 小游戏的开发,与 App 不同,由于 H5 所有的资源都是通过 CDN 获取的,考虑到网络资源加载速度的问题,优化资源显得格外重要。因此,图片资源的压缩也是必不可少的。   起源 起初,我们在 windows 下是通过一个叫做 PNGoo 的 GUI 工具来实现图片资源批量压缩的。但考虑压缩资源还需要启动一个应用,将图片资源拖进去再开始压缩,显然不够智能,希望通过 p...

2018-10-13 16:53:45

H5 微信小游戏群 openGID 解密

这里使用的 Wechat Lib 版本是 2.0.6 ,高于此版本则不再能获得分享成功与否的回调。后来直接把基础库升级到 2.2.2 ,发现只是开发者工具拿不到回调而已,手机上还是还能拿到回调。 在使用微信小游戏的分享功能时,假如在 wx.showShareMenu 中设置了 withShareTicket: true : wx.showShareMenu({ withShare...

2018-08-30 17:30:03

H5 DFA 敏感词过滤

前言 最近在做游戏的聊天功能,需要在客户端接入敏感词过滤,较低成本的实现方法有字典匹配和正则表达式匹配,但效率上较低。大致 google 了一遍,发现 DFA 算法是实现敏感词过滤效率较高的选择,下面是具体实现过程。   DFA 算法须知 DFA 算法,即 Deterministic Finite Automaton ,中文翻译是有穷自动机。它是通过 event 和当前 state 得到下...

2018-07-30 16:58:06

H5 微信小游戏 —— 音频管理器

前言原本使用的是 egret 的 egret.SoundChannel 和 egret.Sound 来管理音频,但不知为何在重复将游戏切换到前后台后,很容易出现背景音播放不全、播放重复和无法播放的问题,懒得再去排查原因干脆使用小游戏提供的音频播放 API 重写了一个音频管理工具。API 相关参考官方文档 教程/音频播放 ,大致了解音频播放是利用微信接口 wx.createInnerAudioCon...

2018-07-10 14:51:08

electron-vue 实践 2 —— 表格合并桌面工具

前言之前使用 vue-cli 和 electron-vue 创建了工程,接下来就开始实现具体的逻辑,我们的目标很简单,就是将一张或多张表中的所有 sheet 页内容都垂直或水平合并在一个 sheet 中,并生成一张新的表。UI 布局文件新加一个 .vue 后缀的文件,vue 的 UI 文件格式大致如下,不了解的可以查看 官方入门文档 :<template> <!--htm...

2018-06-28 10:21:33

electron-vue 实践 1 —— 安装和创建工程

去年倒腾过一段时间的 electron ,但最终没做出什么东西来,最新刚好要帮一个做审计工作的朋友做一个桌面软件,所以打算正儿八经地研究一下。我们都知道 electron 相当于一个浏览器的壳子,里面的内容开发其实与 web 网页开发并无明显区别,只是通过此框架提供了可以直接操作系统的 native API ,大部分接口是普通浏览器做不到的。electron 安装有资源问题,在国内使用 npm 直...

2018-05-23 10:18:19

Egret 从创建到发布

创建项目安装完 egret 之后,使用 egret 指令创建工程:$ egret create e_demo 正在使用白鹭编译器 5.1.9 版本 扫描项目列表 正在创建新项目文件夹... 正在编译项目... 项目创建成功,您可以执行 egret run 来运行刚刚创建的应用 项目共计编译耗时:3.132秒运行项目运行创建出来的工程:$ cd e_demo $ egret run 您正在使用白鹭编...

2018-05-20 15:57:57

TensorFlow 学习笔记1 —— 安装

今天大概看一下如何搭建 TensorFlow 的开发环境,当前的工作平台是 Mac OS X 10.13.2 :资料主要来源于 TensorFlow 官网 。安装方式选择官方提供了一下几种安装方式:Virtualenv (虚拟环境) "native" pip(原生环境使用 pip 工具安装)Docker (使用 docker 容器)installing from sources, which is...

2018-04-15 23:07:58

Unity 使用 Spine 动画

在 Unity 中,常常使用 Spine 来制作一些动画,引擎本身并不能直接播放 Spine 动画,需要额外导入一个 RunTime 插件库才能支持。运行库导入关于运行库的导入,有两种方式:1. 从开源库导入下载 Spine 的 runtime 库:EsotericSoftware/spine-runtimes ,只需要将其中的 spine-csharp 和 spine-unity 两个部分导入到...

2018-04-02 17:34:39

BAT 字符串大小写转换

前言今天为了解决一个问题,在 Unity 中我们经常需要通过 IO 读取文件,就像我们读取表格的二进制文件例如:DirtyConf.bytes , Windows 中默认是对大小写不敏感的,所以读取的时候指定的读取名称可以是 DirtyConf 字母的任意大小写组合,例如:dirtyconf 、 DIRTYCONF 、DIrtyconf 等。然而对于手机移动端,通过 IO 是大小写敏感的,必须与原...

2018-03-31 14:14:50

Skynet服务器框架(十二) (debug_console)控制台管理

在 skynet 框架中提供了一个控制台服务 debug_console ,用于帮助我们查看 skynet 的一些运行时数据,而且在需要热更代码的时候也需要借助控制台来实现。接下来,我们先看看如何使用控制台,然后在大致看一遍底层的源码实现。工具准备由于启动控制台服务后,需要借助 nc 或 telnet 来远程连接控制台,所需需要确保机器上已安装了此类工具,这里我使用的是 nc 6.40 ,可以先查...

2018-03-15 09:29:38

Skynet服务器框架(十一) 看懂 skynet 的 Makefile

Makefile 这个东西最早是在大学学习 Linux 下编写 C 程序的时候接触到的,但是,基本上都是用完就还给老师了。最近也是因为使用 skynet 框架开发服务器,才想起重新拾起这个技能。今天就以 skynet 里面的 makefile 为例,大概解读一遍。什么是 Makefile1. 什么是 make 在了解 Makefile 之前,需要先了解 make ,代码生成可执行文件的过程,会经历...

2018-02-27 17:22:50

Linux 配置 SSH(复用已有的公钥)

假如项目中添加了需要使用 ssh 方式连接服务器的 git 子模块,则需要配置 ssh 公钥,这里我是直接复用之前用过的公钥,这样我们可以在多台设备上使用同一份公钥。 复用旧公钥 在 ~/ 目录下新建 .ssh 目录,然后复制已有的 id_rsa 和 id_rsa.pub 到此目录下,然后修改 id_rsa 的权限,不然会报错 "Permissions 0644 for '/root/.s...

2018-02-27 16:43:12

Unity 带 Alpha 图片手机包失真

iOS 图集压缩失真 在 Android 平台下 UI 图片一切正常,但打包到 iOS 上之后,带透明度的区域会出现明显的失真,排查之后才发现,对于设置了 Package Tag 参数,即打包到图集中的图片,使用 Unity 默认的压缩设置的话,会使用 PVRTC 4 bits 进行压缩,此时: 不打图集的散图,带透明度,不会有明显失真; 打图集的图片,带透明度,透明区域失真会比较明显:

2018-02-05 20:36:32

Docker 入门须知

前言: 之前大概了解了一下 Docker 的一些皮毛,知道 Docker 是基于 Go 语言开发的容器技术,可以在同一台服务器上构建多个互不干扰的干净的隔离环境。 Docker 的优点: 相比于传统的虚拟技术,容器可以以更低的成本为应用提供一个干净的隔离环境,原因大致如下: 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而容器内的应用

2018-01-14 14:09:04

H5 游戏主流引擎和编程语言

引言:最近微信新版本,主推小程序中的小游戏模块,一个 “跳一跳” 的 H5 游戏瞬间爆火,虽然很多传言说 H5 真正盈利的时机未到,因为它的突出作品大多是简单的小游戏,好玩但不吸引付费。然而,H5 游戏巨大流量和强大的日活跃还是可以转化为利润的。

2018-01-14 13:38:09

Unity 移动端 The file 'none' is corrupted. 报错解决

Editor 上不报错,打成 ab 包在移动端报错 1. 应用背景:我出现此问题的背景环境是: 我使用一个自定义的列表组件来管理列表 item 的循环复用; 然后 item 做成一个预制体,跟列表界面预制体放在同一目录下; 列表组件中通过一个 public GameObject itemPref; 的属性索引 item 预制体,实例化的时候使用 Instantiate(itemPref) 的方式实现

2017-12-02 16:44:41

Unity 从 protobuf 2.5 升级到 3.x 【踩坑】

之前使用 protobuf 2.5 的版本来定制和读取表格,为了适应后端 golang 的工具选型,需要将前端的的一些库和工具都升到 3.x 的版本,例如, C# 中要使用 protobuf 需要引入一个编译好的 protobuf-net.dll 库文件。Protobuf 3.4.x :1.资源下载: protobuf 源码:这里直接选择最新的 Protocol Buffers v3.4.0 ,然后

2017-10-24 09:59:24

Python 文件数据批量录入数据库(MongoDB)

引言:我写博客的习惯基本上都是: 使用 Typora 或者 haroopad 这样支持 Markdown 语法的实时可视化编辑器先编写好,然后再发布到 CSDN 或者我自己的 hexo 博客地址上。 不在在线编辑器上编写的原因是可以博客本地备份而且内容不容易丢失。所以,此时假设我们写完了一篇博客,即有一个 .md 的文件,要如何将其自动录入到数据库中?多个 .md 文件如何一次录入?

2017-09-16 15:01:23

《Unity 3D游戏客户端基础框架》tolua 框架接入

引言:如何将 tolua 框架接入 Unity 项目中,这里假设我们已经有一个项目,并且已经实现了一些基础架构或者项目已经是完整的,此时,如何将 tolua 这个热更新框架接入进来而不影响原项目的结构?tolua 引入:1.资源下载:既然要将 tolua 引入项目,第一步肯定是先到 tolua 的 github 资源库 中下载 tolua 的资源包:tolua-master.zip2.资源引入:将

2017-09-03 10:57:54

博客专家

河乐不为

个人独立博客:https://linshuhe1. github.io/ ...展开 收起
关注
  • 网络游戏/码农
  • 中国 广东省 深圳市
奖章
  • 博客专家
  • 专栏达人
  • 持之以恒