自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (6)
  • 收藏
  • 关注

转载 NanoHttpd 单文件

import java.io.BufferedReader;import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io..

2020-06-23 16:08:59 587

原创 u3d honey hex framework 路径显示改造

原始的寻路使用了一个第三方的unity3d astar库,这地图中是使用六边形的中心作为路径点,而且可行走的区域不能动态变化,所以想改造一下。改造达到的效果是1)不使用路径点,而是每个六边形的格子里面的点都可以作为寻路的目标;2)选了不同的角色之后,可以行走的区域不同。自己使用a*算法重新写了寻路后,这两点都没有问题了。但是要显示出可以行走的区域就比较麻烦了,最后想了一个办法,修改

2016-11-02 13:36:41 1962

原创 u3d honey hex framework 代码解读记录(五)

// 接着讲上次剩下的一个函数chunk类中的GetForegroundData/// /// parses through controlled hexes and produces single list of the foreground data which fits within chunk /// Note that single hex may be shared up to

2016-07-15 22:56:26 2195 2

原创 u3d honey hex framework 代码解读记录(四)

// 接着上次baking函数中的循环开始// 生成阴影贴图,源和高度贴图源是一样的,目标贴图小了很多,边长是2的4次方分之1//Render shadow and light to scaled down texture and copy it to Texture2Dint scaleDownPower = 4; //scaling it down 4 powers will resi

2016-07-14 23:12:37 1968

原创 u3d honey hex framework 代码解读记录(三)

// 接着上次的baking函数段 -------------------------------------------------------------------------// 因为各个烘焙阶段都是使用shader来工作的,所以目前看烘焙相关的代码会觉得不是很清楚// 等到将这个大的流程粗略过完之后,我会回头将每个shader和对应的函数解读一下// 大概需要等到下下篇文章了/

2016-07-13 18:44:28 2913

原创 u3d honey hex framework 代码解读记录(二)

// file: WorldOven.cs/// /// If baking were requested this function will handle starting all required processes and default settings required for initial pass/// /// void Update(){ // 如果有dirty

2016-07-12 23:11:45 2731

原创 u3d honey hex framework 代码解读记录(一)

honey hex framework: https://www.assetstore.unity3d.com/cn/#!/content/21650// file: CameralControl.csif (GUILayout.Button("Generate World")){// 将地形和配置资源load到游戏中// 游戏设置(MHGameSettings)和地形

2016-07-11 23:06:26 2165

原创 golang深度拷贝map

最简单的方法是用json unmarshal,变成字符串,然后再用 json marshal生成新的map。这种方法对结构体也适用。如果是map[string]interface{}和[]interface{}的组合,用代码递归也很简单:func DeepCopy(value interface{}) interface{} { if valueMap, ok := value.(map

2016-07-06 11:23:26 23161

原创 中文分词在大量数据模糊查询中的应用

最近在做建筑行业相关的项目,遇到的一个应用场景是解析材料名称。由于输入的数据中材料名称非常不规范,而且数量量又非常大,所以处理起来比较困难。名称不规范的意思是,比如标准材料叫:“圆钢”,材料中出现的名称有:“钢筋圆钢”,“圆钢HPB300”,“钢筋 圆钢(≤Φ10)”等等,也就是说材料名称前面或者后面很多修饰语(一般情况是前面是材料分类,后面是型号信息)。一般的思路就是关键字匹配,但是由于

2016-03-11 17:18:05 4309 1

原创 golang tree 辅助操作

在项目开发过程中,发现需要很多树的数据结构,所以封装了一个树的接口,方便操作。树的生成:比如树的节点结构定义大概如下:type struct Node { Name string Children []Node CalcRule string // 自定义属性}Name 指节点名字,Children是包含的子节点的数组,还有其他一些字段,就是叶子节点的一些属性了,比如这里的Ca

2016-03-06 12:15:20 3432 2

转载 mac下liteide gdb 调试

需要将gdb做一个codesign操作,方法如下:On MacOSX lldb needs to be code signed. The Debug and Release builds are set to code sign using a code signing certificate named lldb_codesign. If you don't have one

2015-11-03 11:04:29 3558

原创 golang 和 python 微信菜单设置

微信公众号开发中,需要发送http请求来设置菜单。写了一个程序放在这里,避免每次用postman发请求的麻烦。golang代码如下:package mainimport ( "bytes" "encoding/json" "flag" "fmt" "io/ioutil" "net/http" "os")const ( WX_ID = "xxxxxx

2015-06-24 14:05:37 1730

原创 第一章

安装各种包install.packages("devtools") install.packages("PerfomanceAnalytics")install.packages("/Users/xxx/stork/r-packages/blotter_0.9.1666.tar.gz", type="source")install.packages("/User

2015-06-03 15:48:24 759

原创 mongodb 操作文章汇总

数组的更新操作:http://jzfjeff.blog.51cto.com/1478834/1003191数组的查询操作:http://blog.csdn.net/drifterj/article/details/7833883

2015-03-16 16:31:56 517

原创 七牛空间删除所有文件go客户端

做个记录package mainimport (    "fmt"    qiniuConf "github.com/qiniu/api/conf"    qiniuRs "github.com/qiniu/api/rs"    qiniuRsf "github.com/qiniu/api/rsf"    qiniuRpc "github.com/qin

2015-02-16 16:23:48 1056

原创 shell 生成 manifest

一个生成manifest的脚本#!/bin/bashif [ $# -ne 1 ];then        echo Usage: ${0} dir        exitfilist_alldir(){        for file in `find $1`        do                if [ -f $file

2015-02-12 17:21:40 914

原创 Revel json decode for param

使用ajax的风格,网页客户端使用json和服务器通讯,需要revel解析json格式的参数。在网上搜索,发现了一个很好的文章:http://leanote.com/blog/view/52da6ea9a3cf232efb000000但是使用起来有两个顾虑:1 文章里面使用的方式是直接更改revel的框架代码,以后revel升级之后需要merge。2 在解析json的时候只将第一个参数

2015-01-08 18:20:08 1457

原创 unity3d的日历控件

开发了一个日历控件,在unity3dli

2014-09-23 14:00:42 9266 13

转载 转载 Linux网络性能调优

记录,以免丢了,原文:http://www.zhangyiqun.net/583.html#老外写的文章,看过后觉得非常不错,国内大部分是转载的英文版,我翻译过来造福一下大众吧。我有两台服务器放在不同的机房.在两台服务器间会有一些大文件需要传输,每当这个时候我的网络性能就变的很差劲.在linux下我将如何通过调节TCP来改善这个问题呢?其实linux默认的网络设置并

2014-09-23 11:08:06 4609

转载 转载 游戏设计艺术中100个透镜

《全景探秘游戏设计艺术》100个透镜是阅读天之虹翻译的电子书做的读书笔记,希望对从事游戏设计的朋友有帮助!倾听:团队,玩家,游戏,投资人自己。游戏设计师真正关心的是创造体验。行为心理学,现象心理学。(做心理学方面的系统学习和进修)人类学,设计学,每个行业的设计师那里学习带给用户的心理体验。游戏设计师,至始至终都不需要关心在客观世界中真实存在的东西,只需关心在主观体验

2014-08-18 18:20:58 3007 1

原创 为NGUI panel 添加 sorting layer

接着上一篇文章的问题,为ngui pan

2014-08-01 11:06:19 10193 3

原创 unity 2d 和 NGUI layer

在使用NGUI和unity2d的时候,发现一个问题,

2014-07-16 14:21:27 6164

原创 linux下go的动态链接库的使用

在使用lua进行服务器端游戏逻辑开发时,发现了LUA的各种不方便的地方,不能编译检查,不能断点调试,笔误的函数和变量不提示出错等等,所以有了全部使用go来做服务器端开发的想法。如果不需要热更新,那使用go开发服务器逻辑是很轻松的,而游戏服务器特别是页游,一般都需要支持热更新,所以我决定使用go的动态链接库方式来实现,也就是底层框架是go,上层逻辑是go的动态链接库。go原生不支持动态链接库,在

2014-03-16 17:18:48 6892 1

原创 go lua binding: aarzilli "signal arrived during cgo execution" 错误修改

项目中使用到了go调用lua,从github上下载了aarzilli。使用的过程中发现了一个问题,修改了一下,记录在此。之前的代码如下:func LuaRun(jsonData []byte, index int) string { luaInfo := luaInfoArr[index] if needReload { if 0 != luaReload(luaInfo) {

2013-12-07 10:41:51 3021

原创 协程在游戏服务器开发中的应用

之前在客户端开发中,就发现了协程在代码中的方便之处。比如我在获取一个资源时,不使用协程的情况下,只能使用回调函数,代码大致如下:void ProcessPic(string picName){Pictrue pic = getPic(picName);if(pic == null){requestPicFromServer(picName, ProcessPic2)

2013-11-09 11:46:29 1639 1

原创 unity3d 脚本拷贝地形

遇到一个问题,解决方法是从创建好的地形拷贝一份新的地形,但是在拷贝的时候发现新地形和老地形实际使用的一份地形数据,在修改老地形数据的时候,新地形的数据也会相应变化。在网上搜索了一下从脚本创建地形的例子,稍微修改,可以满足我的需求,放在此处记录。老地形的Terrain部分的变量叫做_terrain。TerrainData terrainData = new TerrainData()

2013-09-02 14:12:51 5727 1

原创 unity3d 中物体的跟随地形倾斜

为了实现的效果

2013-08-08 12:29:53 13714 2

原创 游戏中分层状态机的实现

状态机的实现方式有很多种,一般都使用比较简单的switch case方式来实现对事件的处理和状态的转移,如下所示:void ProcessEvent(Event event){ switch(state) { case StateA: StateAProcess(event); break; case StateB: StateBProcess(event);

2013-07-31 17:07:12 11855 8

原创 new web game server

做压力测试时,发现服务器性能还是很有问题,目前的瓶颈主要在两个地方:1 mysql;服务器是8核cpu,压力大时mysql的cpu占用率达到100%左右,我的理解是把一个cpu占满了。    php-fpm-slow.log里面可以看到很多操作mysql的地方都超时了。2 php本身;在一些复杂逻辑的操作,比如战斗,php本身执行时间就比较长,再加上mysql的延迟,叠加效果更明显。

2013-01-25 11:05:29 1216

原创 golang 并行转串行透明代理

放在这里做个备份package mainimport ( "fmt" "log" "net")const ( realServer = "127.0.0.1:9002" selfPort = 9010)type gameConn struct { ClientConn net.Conn PkgBuf [maxPkgSize]byte Pk

2013-01-25 10:39:08 2787

转载 转载 linux/unix 段错误捕获【续】

原文地址 http://blog.chinaunix.net/uid-26009500-id-1585783.html一、出错代码在动态链接库内时,原方法的输出     有些情况下,我们会采用动态链接库,如果出错代码行恰巧在动态链接库内,原方法仍可得到出错时的地址。例如:signal[8] catched when running code at 804

2013-01-23 18:35:18 1044

转载 【转载】 风格之争:Coroutine模型 vs 非阻塞/异步IO(callback)

原帖地址: http://www.kuqin.com/system-analysis/20110910/264592.html我们在设计一个服务器的软件架构的时候,通常会考虑几种架构:多进程,多线程,非阻塞/异步IO(callback) 以及Coroutine模型。多进程这种模型在linux下面的服务程序广泛采用,比如大名鼎鼎的apache。主进程负责监听和管理连接,而

2013-01-18 11:01:30 7853

原创 设计模式在游戏客户端中的应用(一)

mvc不讲了。说一个非常有用的:策略模式。策略模式的思想在设计模式里面写的非常清楚,概括下来就是将行为和行为的实现分离。在head 设计模式这本书里面讲的例子也非常容易理解,基本上可以直接搬到游戏中来。如图:在游戏中,玩家,怪味,NPC,坐骑,宠物,侠客等等,他们都是可以活动的对象,也有一些共同的行为,所以都可以由一个基类派生出来,但是他们也有很多不同的行为,比如N

2013-01-13 15:50:36 3662

原创 u3d游戏客户端架构(---)

主要是mvc架构,M层为数据层,两个用途:1保存数据;2发送数据更新信息;V层为视图层,两个用途:1接受用户从界面上的操作;2根据M层的数据显示相应的界面;C层为控制层,两个用途:1处理和界面无关的代码逻辑;2接受和处理网络数据;继续……按照自己的经验,游戏中的mvc架构有两种思想,1,以mvc架构为主,整个框架就是一个mvc架构;2,以对象思想

2013-01-06 20:10:09 19187 7

原创 web game server architecture

黑色的线代表socket长连接,橙色的线代表socket短连接,蓝色的线代表数据处理流程1客户端发送数据包到boost ASIO server,2server先将包发送到preprocess模块处理;这个模块是和游戏逻辑关联的,比如模型协议的包可以直接丢弃,某些协议的包可以跳过php部分的处理等等;由于处理逻辑和游戏逻辑关联,所以采用动态链接库方式,以便逻辑更改之后服务器不用重

2013-01-06 20:03:43 1770

原创 jsoncpp 配置

由于需要将项目能够在某平台上跑起来,所以需要对服务器进行重新编译,将boost库版本降下来,比较悲催。平台是SUSE LINUX 10.1首先是编译jsoncpp,步骤如下:1. 下载scons-2.2.0.zip,解压得到scons-2.2.02. 进目录去,执行python setup.py install3. 下载jsoncpp-src-0.5.0.tar.gz,

2012-12-04 16:14:42 2751

原创 一些代码技巧

之前使用了pantheios来做日志库,后面发现还是太大了,自己的需求又很简单,所以自己做了一个简单的封装:#define LOG_INFO(fmt, args...) { printf("%s [INFO] "/**/fmt/**/"\n", gb_now_time_str.c_str(), ##args); fflush(stdout);}#define LOG_ERROR(fmt

2012-11-12 17:51:07 757

原创 boost asio 需要使用智能指针而不能使用普通指针的原因

当使用asio做服务器时,需要一个会话管理器来管理所有的会话,类似下面这样:class SessionMgr{private: boost::shared_mutex _rw_mtx; boost::unordered_map > _session_list; boost::unordered_map >::iterator _iterator; public: void

2012-09-22 16:14:35 1608

原创 mysql++ build recode

编译mysql++时,报如下错误:./ssx/genv2.cpp: In function ‘bool generate_ssqls2(const char*, const ParseV2*)’:./ssx/genv2.cpp:70: 错误:‘strcmp’在此作用域中尚未声明解决方法:打开ssx/genv2.cpp,在文件头部添加 #include

2012-09-06 11:19:23 1015

原创 Game Server Build Record

language: c++libararies: boost, pantheiosmemory manager: redis------------------------- 分割线 ------------------------------------在第一个版本的服务器中,参照boost http server,写了如下代码片段:Worker:

2012-07-30 08:14:01 645

NGUI Sorting Layer script

为NGUI添加sortting layer,修改了3个文件,放在这里,覆盖掉以前的文件即可。 注意版本,我这个是NGUI 3.6.8基础上修改的。详细修改过程见我的博客文章。

2014-11-04

unity3d ngui 日历控件 prefab

之前那个prefab有问题,我用了package重新导出,配合之前资源里面的c sharp脚本使用

2014-09-24

unity3d ngui 日历控件

unity3d 日历控件,ngui的altas丢失了,需要自己添加u2b

2014-09-23

深入理解计算机系统中文版

不是很清晰,如果英文好的还是看英文版比较适合,英文差的可以看看这个

2013-01-25

sqlyog中文绿色版

sqlyog绿色中文版,真正可以用的版本

2012-02-19

深入了解计算机系统 PDF 英文版

深入了解计算机系统 英文版 了解计算机内部底层工作原理的好书籍

2010-02-22

空空如也

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

TA关注的人

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