自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

转载 UC源码分析游戏保存及CheckPoint实现

CheckPoint是非常普遍的一种游戏进度保存机制UC中在关卡的关键点放这样一个CheckPoint就能实现游戏进制保存了。UC保存游戏的数据玩家位置,旋转、弹药,枪、关卡时间当触发CheckPoint的Overlap事件时,就会收集玩家身上的数据,并调用保存函数UC保存的核心API就一个,当然这种方式也只能把数据保存在内存中-----------转载请...

2015-01-25 17:45:00 164

转载 UC游戏状态切换

UC游戏共有6种状态,UCGameInstance就是控制游戏在这6种状态之间转换及HUD显示,单机游戏中能引起游戏状态改变的其实不多,用户主动的比如按下ESC键,用户被动的比如被怪杀死进入死亡菜单,或者剧情强制切换比如,响应玩家 的ESC按键,比如玩家死亡,显示死亡菜单都是些极简单的代码,OpenLevel,设置ScreenState状态,以从主菜单进入新游戏为...

2015-01-25 17:35:00 154

转载 Bot怪AI

UC中只有一种怪Bot,这是一种很简单的怪,它不会跑,只会旋转并原地射击,所以也没有用什么行为树之类的,所以这里围绕Bot怪如何发现玩家、攻击玩家、被玩家攻击分析Bot怪1 当游戏开始时可以看到在编辑器时Bot怪是没有带武器的,是在游戏开始是把武器刷出来,放在手上的2. 发现玩家当游戏开始时,Bot怪就启动了一个0.5秒的定时器,执行CheckForPlayer去...

2015-01-25 17:11:00 123

转载 UC武器系统之枪与子弹

1.UCWeapon与UCWeaponRanged武器的本质区别是后者是需要子弹的,也就意味着后者在能否BaseAction时需要检查玩家的是否有弹药刀是通过检测是否播放动画能知道自己是否应该攻击,但枪就不行了,因为枪在攻击之前是要把子弹刷出来的,因此UWeaponRange的BaseAction通知UCWeapon的PrivateBaseAction事件,具体武器重写...

2015-01-25 16:30:00 132

转载 UC-武器系统刀

这是UC武器系统的类结构图,我不会每一种武器都讲,只会分析刀及CharGun实现,因为其它都是类似的。 UCWeapon是武器系统的根类,它不会做具体的事情,它只有两种行为,一种是BaseAction,另一种是AltAction,要理解这两种Action,可以考虑枪。枪是一种既可以近战又可以远战的武器,射击就是BaseAction,用枪托砸人就是AltAction,这两种Actio...

2015-01-25 15:45:00 103

转载 UC分析-武器系统之子弹获取

UC的主角是一个左手拿刀,右手拿枪,自带时间控制BUFF的高手,有枪就得有子弹,UC中获取子弹有三种方式LevelBP里设置子弹捡起ShotGun时会给两发子弹,最常用的是在一个箱子里呆着,会最高给3发子弹,这也是要分析的一种给子弹方式,这个盒子是一个普通的BP,带有一个Volume在层次结构上,这样就可以检查玩家是进入与离开EventGraph里处理了几个事...

2015-01-25 15:05:00 100

转载 UE4项目-UC项目概览

UC项目是一个国外大大写的一个UnrealEngin4的项目,为什么要分析这个项目,因为它足够的小巧又足够的完整,不像官方开源UT,那就太庞大了;也不像其它的demo哪样只讲一个技术点,这些demo并不能解决ue4游戏的工程问题及流程问题,比如游戏的各种菜单(主菜单/暂停菜单/制作人员等等),关卡之间的切换,甚至其实很多人也不大能回答玩家死了之后如何控制流程,死亡之后如何重生的问题。 ...

2015-01-25 14:11:00 348

转载 skynet 框架snax源码分析1---变量注入

skynet为了简化服务的编写,推出了snax框架,源码里也有一个例子pingserver。这是snax原创文章的第一篇,所以先就分析snax框架里的interface.lua源码,它的实现应用了一个闭包中的upvalue注入技巧。凡是框架都得遵循框架的约定,snax有两个大的约定,一是约定了一组预置的接口init/exit/hotfix;二是accept/response这两组用来...

2014-11-23 12:40:00 161

转载 从goauth2的一个bug说起

goauth2由于作者使用诡计,导致如果goauth2启用redis缓存token与code后,导致android客户端不能在获取token了,这里就分享一下查这个bug的过程。 首先,bug的表现为获取token失败,具体的原因是因为当goauth2产生了token与code后,但是只能存储code而不能存储token,这样验证的时候由于无法从redis服务器获取token,所以就失...

2013-08-20 00:42:00 98

转载 Vagrant与skynet框架

.clipbord { padding-left: 100px; } skynet是一个go语言的分布式服务框架,官方推荐用vagrant搭建开发环境,但官方文档并不详实,谈一下自己在配置这个框架的经验。 现在网络服务开发,很多人都希望在win下开发,而在linux下部署,所以我需要在win下使用vagrant的一台ubuntu机器,上面运行...

2013-07-27 17:34:00 94

转载 饭否Android端更新流程分析

手上有一份饭否官方开源android代码,这里把源码分析的结果分享一下 登录过程就不必说了,成功登录之后就来到HomePage.java,类HomePage实现了PutllToRefrsh的接口OnRefreshListener2<ListView>(onPullDownToRefresh),也就是当每次下拉时就会刷新,刷新会调用doRe...

2013-06-05 16:11:00 94

转载 Irrlight中位移运算

阅读Irrlight源代码,看到下面这样一个函数,从注释上看它是由condition来决定设置还是清除mark的一个快速实现,一时好奇就探究了一下它是怎样实现的 /* if (condition) state |= m; else state &= ~m; */ REALINLINE void setbit_cond ( u32 &...

2013-02-13 21:58:00 82

转载 skynet通信模式的思考与扩展

skynet提供服务的方式是基于harbor间通信来完成,在skynet的配置文件中有一个harbor参数,这个参数我原来以为是用来控制一个master集群可以启动多少个harbor结点的,一次写demo的过程中,发现skynet.send无法调用另一个harbor的服务,总是报告drop message,检查之后才发现是因为它们在config配置里,属于同一个harbor,才明白这个参...

2012-12-27 00:49:00 157

转载 ThinikPHP 前端URL模式

一 U方法 ThinkPHP有强大的URL解析功能,支持多种URL模式,但这也为前端开发带来了困难,如果URL模式改变了,但前端手工编码调用服务端的URL也要相应的改变,否则就有问题了,因此ThinkPHP提供了一个U方法来产生特定模块,特定方法的URL。 U('[项目://][路由@][分组名-模块/]操作? 参数1=值1[&参数N=值N]'): U('Index/ind...

2012-11-25 00:06:00 114

转载 ThinkPHP Mongo驱动update方法支持upsert参数

Mongo数据库update操作有一个相对于Mysql的关键特性,它可以使用upsert模式,当更新的数据不存在时,直接插入,但是ThinkPHP的Mongo驱动居然不支持这一特性,没办法,自力更生了。 ThinkPHP的driver层,见由于支持多种DB,又使用了继承,使用得类层次结构较深,负责Mongo驱动的是DbMongo.class.php,文件位于ThinkPHP\Exten...

2012-11-24 21:21:00 197

转载 ThinkPHP Logic层

.csharpcode, .csharpcode pre{ font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/}...

2012-11-24 20:57:00 476

转载 eclipse中编译调试skynet

一 编译 虽然可以使用gdb调试skynet,但总是没有能在IDE里调试那样痛快,所以这里想办法把源码放进eclipse for c++ IDE中。在eclipse建立的项目的原则是以skynet里的makefile为参考,makefile里有多少个target,就建立多少个工程,skynet自带的makefile生成的目标有两类,一类是可...

2012-11-21 23:09:00 184

转载 Skynet框架2-分离Master与Harbor

Skynet默认的配置是把Master与Harbor集成到一个结点了,为了更清楚的了解Skynet框架,需要分离Master与Harbor,这就需要了解Skynet是如何配置的及Skynet的启动流程及各个参数的作用. root = "./"thread = 8logger = nilharbor = 1address = "127.0.0....

2012-11-08 10:57:00 187

转载 Skynet框架(1)

云风开源了skynet框架,Git了代码,根据指导粗略看了一下,在Centos编译运行,一切都很顺利。skynet框架是从一个网游服务器中抽出来的,但却不一定需要用在网游里,skynet的模式是master-harbor,一个master下挂着多个harbor,最大支持255个harbor,Git上的代码配置情况是一个全局配置服务结点,一个结点是既是harbor又是master,为了研究...

2012-11-07 22:36:00 99

空空如也

空空如也

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

TA关注的人

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