自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(219)
  • 资源 (10)
  • 收藏
  • 关注

原创 Java中常见的类型转换

Java中常见的类型转换:1.Java enum枚举与int类型互转:假设枚举类型声明如下:/*** 状态枚举*/enum StateType{ Idle, //站立状态 Fight, //进攻状态 Dead, //死亡状态}enum->int: ordinal()方法:返回枚举值在枚举中的顺序int state = StateType.Idle.ord

2017-04-05 13:28:31 852

原创 Unity3D —— 报错解决方案和常用功能集

1.在Update中对Dictionary迭代器进行修改: var _key = index2factionDic.Keys.GetEnumerator(); string item; while (_key.MoveNext()) {

2017-04-01 16:26:24 5713 1

原创 《从零开始搭建游戏服务器》 Protobuf读取Excel表格数据

前言 在之前的博客中,我们已经尝试过了在C#环境下,使用Protobuf来序列化Excel表格,然后再代码中反序列化出表格数据【Unity3D —— protobuf 导excel表格数据】,如今我们在服务器假如要共用一套配置表格,当需要一个类似的导表和读表过程,接下来我就在原来博客的基础上稍加修改,完成这个需求。准备工作:为了方便起见,我直接复制了之前的一些工具,假如不了解的也可以直接在此

2017-03-29 10:31:20 4505 1

原创 《从零开始搭建游戏服务器》项目发布到Linux环境

前言: 之前我们提及了如何使用Maven来创建、管理和打包项目,也简单过了一遍Linux中搭建Java开发环境的步骤,现在我们就开始将我们之前开发的项目demo发布到Linux环境下,并让它正常运行起来。发布思路:使用Maven将项目打包为.jar将项目的.jar和项目所有依赖的jar包都复制到Linux下创建项目启动脚本来启动项目准备工作:查询Linux系统机器的Ip地址:方

2017-03-24 17:31:40 12381 5

原创 《从零开始搭建游戏服务器》Linux开发环境配置

前言: 之前的开发工作一直是在Windows开发环境下进行的,但是正真发布和外网运营势必要发布到Linux环境下,而且有很多服务端的工具对于Windows系统的兼容性并不是非常完善,就像常用的Docker容器就只支持Linux系统,所以提前了解和部署Linux开发环境势在必行。一、准备工作:首先你需要一台安装Linux系统的机器,或者直接在Windows系统中安装虚拟机,这里我使用的就是虚拟

2017-03-21 20:06:22 24130

原创 《从零开始搭建游戏服务器》优化——Jedis连接池

前言 在Java的开发中,遇到一些耗时的操作,我们通常会启动一个线程,让新建的线程来完成这个耗时操作而不至于影响主线程工作的正常进行,而当需要同时进行多个耗时操作的时候,就要相应地为其创建多个线程,但是这样显然会造成线程的浪费,所以我们采用了一个优化方案,那就是线程池,我们在需要获取线程实例时不直接进行new创建,而是从线程池ThreadPool中获取。 相同的思想在操作数据库的时候

2017-03-16 14:24:25 2009

原创 《从零开始搭建游戏服务器》项目管理工具Maven

简介 什么是Maven?Maven是一个项目管理和综合工具,提供了开发人员构建一个完整的生命周期框架。 Maven使用标准的目录结构和默认构建生命周期,在多个开发团队环境时,Maven可以设置按标准在非常短的时间里完成配置工作,例如:创建报表、检查、构建和测试自动化设置。概况地说,Maven简化和标准化项目建设过程,增加可重用性并负责建立相关的任务。 (注:Maven项目的结构

2017-03-15 15:19:44 2337

原创 《从零开始搭建游戏服务器》Redis操作指令和Jedis工具

引言 上篇已经大致完成了redis的下载安装和简单的使用,接下来我们要真正地操作redis进行一些数据的增删改查操作,以及简便好用的Jedis工具。常用指令:1.增加或者修改已有数据的值:若此key对应的value不存在,则创建这个键值对,若已存在,则修改此key的value数值:set key value查询key是否存在:exists key当然还可以设置失效时间:set key t

2017-03-07 14:46:20 2083 3

原创 Unity3D —— 爆炸交互(震屏效果)

前言: 在我们进行游戏战斗场景开发时,常常为了加强临场感,会在有爆炸或者撞击的时候加入震屏的效果,原理其实很简单,就是对场景主相机进行坐标和角度的变化。设计在开始进行代码实操之前,我们先考虑一下大致的思路,主要操作的参数有震动的幅度(Transform的各项参数,通常只改变localPosition和localRotation,必要的时候也可以操作localScale),还有震动的时间,

2017-03-06 15:35:33 4862

原创 《从零开始搭建游戏服务器》内存数据库Redis

引言: 在服务器中,数据库是必不可少的部分,作为数据存取中心,有时候的系统的操作涉及到数据的快速读写,在这种情况下,我们通常不会中规中矩地直接读写像MySQL的持久性数据库的数据,因为像MySQL这一类关系型的数据库不管是查询或者是修改数据库的内容都需要通过冗长的检索过程,势必影响效率,所以我们通常会选择通过一个非关系型数据库(NoSQL)来在内存缓存数据并实现快速的数据读写操作,然后定时把内

2017-02-28 11:05:51 4483

原创 《从零开始搭建游戏服务器》自定义兼容多种Protobuf协议的编解码器

引言 通过上篇 《从零开始搭建游戏服务器》使用Protobuf定义网络协议 的实践之后,我们知道在设置ChannelPiple的handler时,只能设置一个解码器,即protobufDecoder,但是在实际的网络通信过程中,我们需要传输的数据类型必然有很多种,这就需要通过某个标识来帮助我们在进行数据解析时进行数据类型的判断。解决方案:方案一这是protobuf官方的一种实现方式,通过

2017-02-23 20:38:23 4080

原创 《从零开始搭建游戏服务器》使用Protobuf定义网络协议

引言: 之前我们说过使用Protobuff编解码方式来对网络通信数据进行编码,也就是可以用这种方式来定义通信协议,那么具体要怎么做呢?关于此工具的详细资料和使用操作可以参考我之前写过的博客:Unity3D —— protobuf网络框架准备工具:这里我就直接用之前编写的登录案例中的登录协议文件来进行本次案例的测试,工具下载地址如下:protobuf-java-2.5.0.zip,主要使用到的

2017-02-21 13:45:30 8579

原创 Unity3D —— NGUI染色遮罩Shader

简述: 遮罩的意思是指对原图被遮住的部分进行一定的处理,这里使用最简单的处理就是染色,所以我们需要创建一个遮罩层,通常使用另一个图片来作为遮罩层,也就是mask图。一、mask图的作用:跟UITexture使用的图片尺寸大小必须一致,将原图中需要被遮住(染色)的部分的位置在mask图中对应位置用纯色(例如:绿色(三原色的一种))涂满,学过flash动画的应该知道遮罩动画的原理,mask图其实

2017-02-14 11:14:33 3376

原创 Unty4.7 导入 NGUI3.8.2报错解决

Unity4.7 导入某个版本的NGUI时,假如出现“Assets/NGUI/Scripts/Interaction/UIPopupList.cs(956,45): error CS1061: Type `UnityEngine.BoxCollider2D' does not contain a definition for `offset' and no extension method `of

2017-02-14 10:30:03 3072 2

原创 UE4入门(1)——源码获取和编译

序言 近来UE4渐渐有了抬头的趋势,并且因为其在VR游戏设计中表现突出的渲染性能而饱受开发者青睐,更令人惊叹不已的是这个引擎的源码是开源的,这对于希望研究引擎底层代码的码农来说,优秀得有点过分啦。一、引擎安装:关于引擎安装,其实有两种方式: - 通过官方提供的Laucher下载引擎、工具和资源,具体步骤:登录Epic Games账号后,打开https://www.unrealengine.

2017-01-16 17:11:36 20969 2

转载 简明 VIM 练级攻略

下文转自链接。由原作者陈皓译自《Learn ViM Progressively》,非常不错。 ——————————正文开始——————————你想以最快的速度学习人类史上最好的文本编辑器VIM吗?你先得懂得如何在VIM幸存下来,然后一点一点地学习各种戏法。Better, Stronger, Faster.学习 vim 并且其会成为你最后一个使用的文本编辑器。没有比这个更好的文本

2017-01-16 16:06:34 695

原创 杂笔

分享几张自己最近闲来无事画的画而已,一个闷骚的程序员当然是要不务正业地有那么几个业余爱好啦~第一张:在哔哩哔哩看到一个视频《雨夜》,跟着随手画画而已第二张:看了周觉先画的一些斗战神的原画之后,在他的博客里看到了一张猴子的宣传画,一时兴起临摹了一张素描第三张:看了有妖气的《镇魂街》漫画,觉得许辰画风还是比较喜欢

2017-01-10 14:46:51 713

转载 腾讯开源手游热更新方案,Unity3D下的Lua编程

写在前面xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能、易用性、扩展性而广受好评。现在,腾讯已经将xLua开源到GitHub。2016年12月末,xLua刚刚实现新的突破:全平台支持用Lua修复C#代码bug。目前Unity下的Lua热更新方案大多都是要求要热更新的部分一开始就要用Lua语言实现,不足之处在于:接入成本高,有的项目已

2017-01-06 10:11:34 3817

转载 VS开发Windows窗口应用引入图片资源

做工具栏的时候要用到图片。图标这样的东西从文件夹里导入显得有些山寨。VS的图形化操作很方便。但是我们的程序要动态载入图标。所以不能拖拽了~下面是添加图片的方法:1=》右击项目 =》 属性选择资源选项卡如果没有资源的话,显示右上图。点击创建一个。然后添加文件导入成功后,图片显示成这样代码中引用的方式_FollowButton.Image = global::PluginFollow.Properti

2016-12-30 14:20:49 7034

原创 《从零开始搭建游戏服务器》Netty导入创建Socket服务器

对于普通Web应用后端的开发,常常会借助一些成熟的框架,例如SpringMVC,游戏的服务器区别于此的特点是:游戏服务器需要有比较大的吞吐量,而且通常为Socket长连接,所以需要一个分布式架构。当前比较流行的网络通信框架都为NIO(非阻塞网络通信)框架,比较有代表性的有:Netty和Mina。      一、优势对比:        Netty是由JBoss提供的Java开发框架,适用于开发高性

2016-12-20 20:25:42 14479 9

转载 Apache Commons-logging使用实例

Apache Commons-logging使用实例本文将介绍如何在程序中使用Apache Commons-loggingauthor: ZJ 07-3-17Blog: [url]http://zhangjunhd.blog.51cto.com/[/url]1.Commons-Loggin简介Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interfac

2016-12-20 12:26:31 1368

转载 最详细的Log4j使用教程

日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录。在apache网站:jakarta.apache.org/log4j 可以免费下载到Log4j最新版本的软件包。一、入门实例1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下2、src同级创建并设置log4j.properties ### 设置###l

2016-12-20 11:46:05 1610

原创 《从零开始搭建游戏服务器》架构和工具分析

一、前言:        在正式开始搭建框架和编写代码之前,我们首先需要在大脑里构建游戏服务器的蓝图,主要思考几个问题:1.一个完整的游戏需要划分为几个类型的服务器?2.选择哪种或者哪些(可能同时结合多种数据库使用)类型的数据库?3.使用什么网络通信框架和编解码(规则)工具?4.其他工具。二、概述:1.服务器分类:        对于性能要求较高、用户量较多的大型游戏类型,例如Moba或者MMO游

2016-12-17 15:12:49 16972

原创 《从零开始搭建游戏服务器》Eclipse和Tomcat安装配置

我选择用来进行服务器开发的语言是Java,开发流程更接近于JavaWeb,所以需要先为开发配置一个开发环境,需要配置的主要是Eclipse和Tomcat(Web工程的容器或管理工具)。一、资源下载:1.Eclipse:免安装,但需要先配置好JDK开发环境,而且要下载for JEE的版本,方便配置,我使用的是64位系统还有1.8.0的JDK,下载地址:eclipse-jee-neon-1a-win3

2016-12-15 16:08:13 7416

原创 《从零开始搭建游戏服务器》MySQL安装配置

一、下载资源:        到MySQL官网下载免安装版的MySQL包,或者直接点击此链接下载:mysql-5.7.17-winx64.zip 二、解压配置:        将上面下载的安装包解压到一个本地目录下,在得到的mysql-5.7.17-winx64文件夹目录下会有一个my-default.ini配置文件,将几个参数根据当前目录修改一下,要修改的参数有:basedir(...

2016-12-13 12:57:42 5467

转载 腾讯如何打造一款实时对战手游

2015年以来,手机游戏的市场偏好,逐渐从早期的休闲类、跑酷类、卡牌类游戏,转向重度、操作性更强的ARPG 、FPS、、MOBA类游戏。因此实时对战这一游戏玩法,也逐渐成为了手机游戏的一个核心玩法。纵观AppStore畅销榜前十的游戏,过半都支持玩家实时的PK或者合作攻关。由于实时对战有玩家之间自发进行强互动的特点,活跃度和社交强度都是比较高,为游戏的用户活跃和流水的提高奠定了坚实的基础。  腾讯

2016-12-12 14:30:09 2763 1

原创 NGUI 在Panel使用soft clip时,滚动显示异常问题

在NGUI中,常常需要制作滚动列表的界面,这时候通常需要用到UIPanel的Soft Clip,对Item列表进行裁剪,类似于遮罩只显示指定区域的Item。问题简介:我之前在使用过程中遇到了一个问题,在挂载UIDraggable Panel的UIPanel下提示:Clipped panels must have a uniform scale, or clipping won't work prop

2016-11-03 16:08:38 2975

原创 Unity3D —— 实时PVP小地图实现

前言在很多实时PVP对战游戏(如:英雄联盟、王者荣耀等)的战斗场景中,都会有一个小地图,用于实时地显示一些比较重要因素,例如:队友和对手位置、存活炮塔位置、Boss出生死亡情况等。一、方案分析:实现小地图的方案一般可以分成两种:直接加一个子相机,映射当前场景中所有的物体,简单粗暴;用UI创建一个假地图,然后将需要显示在小地图上的物体,经过位置换算得到的小地图坐标,然后在小地图中创建与每个物体对应

2016-10-13 14:49:27 7794 8

原创 Unity3D——强联网实时PVP思路

网络层:为了保证网络的稳定性,选择UDP+KCP协议的协议方式业务层:以服务器以固定帧数想客户端发送数据的形式,例如:帧数为20,即服务器每秒向客户端发送20次数据,而客户端的工作则是通过解析协议数据,然后对表现进行调整即可

2016-09-28 09:51:13 8773 1

转载 猫都能学会的Unity3D Shader入门指南(二)

关于本系列这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果您在Shader开发上有所心得,很欢迎并恳请您指出文中纰漏,我会尽快改正。在之前的开篇中介绍了一些Shader的基本知识,包括ShaderLab的基本结构和语法,以及简单逐句地讲解了一个基本的s

2016-09-18 17:48:08 1348

转载 猫都能学会的Unity3D Shader入门指南(一)

动机自己使用Unity3D也有一段时间了,但是很多时候是流于表面,更多地是把这个引擎简单地用作脚本控制,而对更深入一些的层次几乎没有了解。虽然说Unity引擎设计的初衷就是创建简单的不需要开发者操心的谁都能用的3D引擎,但是只是肤浅的使用,可能是无法达到随心所欲的境地的,因此,这种状况必须改变!从哪里开始呢,貌似有句话叫做会写Shader的都是高手,于是,想大概看看从Shader开始能不能

2016-09-18 17:46:49 1415

原创 Unity Shader学习6 —— Unity创建一个Shader

Unity引擎是一个非常强大的支持跨平台开发的游戏引擎,基于Mono这个开源.Net的框架设计而成,在Unity中定义了ShaderLab来组织Shader的内容,针对不同平台进行编译。了解了Shader和Cg的一些基础知识之后,接下来我们要做的就是:学会如何在Unity中使用Cg编写Shader并实现一些简单的Shader效果。Unity Shader:说到底,Shader其实只是一段规定好输入(

2016-09-14 13:41:39 9336

原创 Hexo个人免费博客(三) next主题、评论、阅读量统计和站内搜索

使用Next主题美化界面:安装好hexo之后,主题使用的是hexo默认自带的landscape主题,Next主题是iissnan设计的,使用指南其实可以直接参考Next官方网:http://theme-next.iissnan.com/1.Next主题下载:打开Git shell,在当前项目根目下使用git从github上checkout主题的代码,输入指令:git clone https://gi

2016-09-03 18:01:55 15976 3

原创 Hexo个人免费博客(二) 创建主界面分页签和新博客

Hexo常用指令使用:创建新博文:在Git shell中使用以下指令:hexo new "postName"生成指定名称postName的文章到hexo\source_posts\postName.md,当然也可以直接到hexo\source_posts目录下,手动创建一个文件,命名时注意后缀名必须是“.md”即可。 可以打开查看新建出来的.md文件的内容:---

2016-09-03 17:57:35 5306

原创 Hexo个人免费博客(一) 从零到发布Github

之前使用过jekyll+github做过一版自己的博客网站,有兴趣的可以看一下我之前的文章:http://blog.csdn.net/linshuhe1/article/details/51143026,其实也很简单,但是存在一些问题:目录、Rss、sitemap无法自动生成。 最近看到了别人使用hexo+github实现的博客,有更多的灵活性和简约的风格,所以也试着改一下自己原本的设计。什么是

2016-09-02 17:07:09 2185 6

原创 《Unity 3D游戏客户端基础框架》 protobuf网络框架

前言:        protobuf是google的一个开源项目,主要的用途是:1.数据存储(序列化和反序列化),例如xml和json等;2.制作网络通信协议;一、资源下载:1.github源码地址:https://github.com/mgravell/protobuf-net2.google项目源码下载地址(访问需翻墙):https://code.google

2016-08-25 19:44:40 30048 12

原创 Unity3D —— Socket通信(C#)

前言:        在开始编写代码之前,我们首先需要明确:联网方式、联网步骤、数据收发以及协议数据格式        当然在设计时也应该减低代码的耦合性,尽量使得网络层可以在其他地方进行复用,这就需要我们进行接口式的开发。我们这里使用的通信模式是Socket强连接的通信方式,并且使用C#作为编程语言,其实与.NET的Socket通信是一致的。 一、设计思想:        为...

2016-08-25 16:50:51 60846 50

原创 《Unity 3D游戏客户端基础框架》protobuf 导excel表格数据

之前使用NPOI插件编写的导表工具,其实就是直接将数据进行序列化,解析时还需要进行反序列化,步骤比较繁复,最近看到Google的一个开源的项目protobuf,不仅可以用于进行excel表格数据的导出,还能直接用于网络通信协议的定制。一、protobuf简介:        protobuf是由google公司发布的一个开源的项目,二、导表环境配置:三、样例

2016-08-22 15:24:17 16826 17

原创 Unity学习笔记15——Unity5之后的AssetBundle使用方法

前言:       在旧版的Unity(5.0以下)中,将资源打包成AseetBundle时间比较麻烦的事情,需要自行先读取资源文件,然后将资源文件信息都存放到Object[]对象数组中,最后将数据对象传递给BuildPipeline.BuildAssetBundle (Object mainAsset, Object[] assets, string pathName, [DefaultVa

2016-08-20 15:22:59 6498

原创 Python Web 9 —— flask中在js中如何解析render_template传递给html的数据

现象说明:        在flask中通常在使用render_template渲染一个.html页面文件时,可以传入一下参数,在html源码中通过{{变量名}}的方式来调用数据,但是假如在html文件中的JavaScript中想要调用该数据变量,直接调用可能出现识别为Undefined类型的情况。问题分析:        出现上述情况是因为:经常会有字符 空格 ' "" 等被

2016-08-16 15:32:42 13177 14

Live2D_SDK_Unity_2.1.02_1_en.zip

从 Live 2D 官网下载的 2.1.02 的 Unity 版本 SDK 压缩包

2019-07-06

Protobuf导Excel表C#版

使用Potobuf将表格数据进行序列化,每个表格都有一个.data数据文件和一个.cs反序列化类

2017-03-27

netty-4.0.42.Final.zip

Netty官方4.0.42版jar包

2016-12-20

protobuf-net网络协议的定制

protobuf-net网络协议的定制的一个demo,包含了C#服务器代码和Unity工程

2016-08-25

ProtoGen编译后的包

使用protobuf-net进行编译可能会出现错误或者编译不成功,为了不影响正常测试protobuf的功能,提供编译成功之后的protogen包

2016-08-22

protoc-2.5.0-win32.zip

编译版的protoc-2.5.0,里面包含了使用protobuf所需要的protoc.exe文件

2016-08-22

Scrapy基本功能测试项目

通过使用scrapy爬虫框架,爬取指定网页的数据,并保存到本地mongodb数据库中

2016-08-11

NPOI插件写的.xls表格数据序列化的导表工具

通常我们在进行软件或者游戏开发的时候,需要用excel表格来配置一些参数,但是直接将各表存于工程中显然会占用大量空间,这时候我们可以通过把数据都序列化存在文本文件中,使用时再反序列化出来,既可以减少空间,也能保证数据安全

2016-03-31

Unity 3D开发环境

初学Unity 3D游戏引擎的可以参考一下,这是简单的环境配置,大家共同学习吧

2015-02-27

历届电设题目

最近在为今年的全国电子设计大赛准备,自己挑了些题目,还挺齐全

2013-07-26

空空如也

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

TA关注的人

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