- 博客(129)
- 资源 (9)
- 收藏
- 关注
原创 A星算法和双向A星(修正)-附源码
基于VS2017 MFC Direct3D9实现的A星寻路什么也不说就是干!用mfc创建单文档框架,不选文档视图结构,生成代码,程序逻辑封装到AStarGame里面。主要在CChildView里面操作。大体结构就是AStarApp里面有一个主框架CMainFrame主框架里面有一个CChildView,视图里面有一个游戏AStarGame,游戏里面有一个GameObjectManager,游戏管理有一个AStarMap,地图里面是主要的寻路逻辑。一行代码没改。
2025-01-26 12:23:00
758
原创 贪食蛇练手-附全部源码
用VS2017 Direct3D 9 在win32应用程序上练习的游戏win32应用程序框架里面用到游戏对象SnakeGame,游戏对象全局唯一相当于引擎。SnakeGame里面有一个GameObjectManager管理着主要的游戏物体,Snake和FoodMgr和游戏的主要对象。
2025-01-24 17:55:50
671
原创 可以学习的舞蹈
可以学习的舞蹈古典舞剑舞流行舞广场舞街舞最后古典舞芒种 红昭愿 笑纳剑舞左手指月 御剑江湖 沧海一声笑 倩女幽魂流行舞卡路里 学猫叫 少年 海草舞 这条街最靓的仔广场舞百花香街舞faded seve samsara handclapthriller dengerous beat it最后一直想学舞蹈也没有时间,终于抽出点时间总结了第一步,希望以后再有时间继续学习~...
2021-08-31 16:04:27
177
原创 xlua生成代码 类代码
xlua生成代码 类代码xlua原理xlua代码生成 类封装注册创建实例csharp indexnew index操作符方法普通方法Get方法Set方法事件 非静态事件静态xlua原理在github上通过浏览xlua源码组织我们可以推理出来xlua的运行原理编译lua和xlua的原生代码库【c语言的】,然后通过封装lua接口,luadll动态库达到能调用c语言代码库的目的,而c语言编译的lua库可以运行lua代码,打通一条线。游戏开发阶段生成各种封装类型,达到扩展引擎的目的。xlua代码生成 类封
2021-08-27 11:16:10
530
原创 Unity AssetBundle关注点
Unity AssetBundle几点关注依赖关系manifest 文件BuildPipeline.BuildAssetBundles差异包依赖关系假如a包依赖b包,b包又依赖c包,那么a的依赖关系是b包还是 bc两个包呢,通过实验知道,a只是依赖b包,加载b包的时候需要加载c包,也就是说加载的时候需要递归加载。manifest 文件打包的时候会生成很多manifest文件,游戏发布的时候只需要发布总的那个manifest文件就好了,里面会记录各个包的依赖关系,而且依赖关系是相对打包的输出目录的,具
2021-08-26 13:57:14
261
原创 kbe+unity开发遇到的问题
部署买了一个云服务器,部署上去的时候发现,kbe需要的资源包括kbe引擎文件夹里面的资源kbecmd导出插件错误总是提示导出python文件错误,查了半天才知道python tab和空格有严格区分,需要注意。...
2021-08-13 13:10:35
248
原创 KBEngine奇技淫巧<五>
KBEngine网络网络模块的组织EventPoller结构图对象组织InputNotificationHandler如何创建各种HandlerLIstener初始化Receiver创建Channel各种协议Handler的调用NetworkInterfaceChannel 就是socket连接NetworkInerface的结构总结一下网络模块的组织KBEngine最核心的三个模块我梳理的还剩下网络,这篇文章就来聊聊。网络主要是两个模块,一个是EventPoller,一个是NetworkInterfa
2021-07-31 23:03:23
1225
原创 KBEngine奇技淫巧<四>
KBEngine定时器定时器介绍EventDispatcherTimer 时间 定时器container_timeQueue_TimerTTimeprocessadd总结一下定时器介绍是时候放出灵魂框架图了,KBEngine最重要的几个类是的,这个图就说明了KBEngine引擎最重要的几个类。从程序来看,最重要的就是App,因为我是从BaseApp为例子说明的,就画了BaseApp,其他App大同小异,原理类似。其实最核心的类还是EventDispatcher。EventDispatcherE
2021-07-30 23:35:41
684
原创 KBEngine奇技淫巧<三>
KBEngine奇技淫巧之操作处理各种Handler运行机制框架组织处理任务逻辑InitProgressHandlerBaseMessagesForwardClientHandler自成系统的handler总结各种Handler研读KBEngine源码的时候,你经常会看到各种Handler结尾的类,搞懂这些类是很有必要的。我们以BaseApp程序为例来梳理这些Handlerclass ServerApp : public SignalHandler, public TimerHandler,
2021-07-29 11:50:30
474
原创 KBEngine奇技淫巧<二>
KBEngine宏定义诡异的宏定义协议处理中的宏定义DEFINE_IN_INTERFACEBASEAPP协议声明宏NETWORK_MESSAGE_HANDLERKBEngine宏定义习惯KBEngine宏的作用诡异的宏定义KBEngine引擎大约分为资源,脚本,网络,事件[逻辑]四个部分,在每一个部分里面都会用到大量的宏定义,理解这些宏定义还是很关键的。我们试着在读代码的时候读懂这些宏定义以达到使用这些宏和揣摩标哥的编码习惯,也为了将来改代码的时候能遵循一个编码原则。协议处理中的宏定义因为代码中宏定
2021-07-28 10:58:00
770
原创 KBEngine奇技淫巧<一>
KBEngine奇技淫巧<一>最近在读KBEngine代码,记录一下看到的奇技淫巧命名规则KBEngine的CPP命名规则是一个很诡异的命名规则,虽然有迹可循,但是不是匈牙利命名法,所以有点不适应。成员变量类内成员的命名是小驼峰+下划线组成,例如:Network::NetworkInterface & networkInterface_;Network::Address addr_;uint8* datas_;size_t datasize_;size_t sentS
2021-07-27 21:40:41
392
原创 螺旋矩阵之扩展
螺旋矩阵之扩展为了名誉这篇文章小乞丐写于2021-03-28螺旋矩阵试着实现这么一种诡异的数组在上大学的时候有小人走迷宫撞墙实现思路,不过我觉得应该有个数学函数之类的,一直琢磨,最后还是琢磨出来了static int GetIndex(int x, int y){ if (y >= x && y > -x) { return 4 * y * y + 3 * y + x; } else if (y < x &am
2021-03-28 22:58:01
335
1
原创 设计模式之 C# 为什么没有friend,唉~
设计模式之 C#为什么没有friendC#有friend多好呀今天看一个视频在讲设计模式,思考起这个问题来了。我们在搭建框架的时候会用到一些设计模式,访问级别限制也是能用到的,比如单例模式让构造函数在外部访问不到就改成比较低的访问级别,可是在工厂模式里面我就陷入了诡异的深思。考虑这么一种情形这个是一个比较常见的情形,以类BaseClass为父类的类家族和一个管理这个家族的管理器ClassManager组成一个比较合理的系统,最后在用户类CustomClass类里面通过管理器ClassManager
2021-03-28 16:02:09
949
1
原创 Error while importing package: Couldn’t decompress package
这篇文章网络小乞丐写于2021/0/16Error while importing package: Couldn’t decompress package出现这个错误其实挺奇怪的网上的解决方案路径不要有中文文件名字不要包含空格## 标题我实验过以后没有解决,后来查如何解压.unitypackage找到了信息。unity 的组件包 *.unitypackage 格式的文件为之用lzma和zip双重压缩的常规文件。直接解压的方法为将unitypackage拓展名改为.lzma 使用7z、36
2021-03-16 19:03:51
988
原创 NLog简单使用教程
NLog简单使用教程NLog介绍NLog是一个记录日志的模块,简单配置就能使用。如何获得在visual studio里面的NuGet程序包管理器里面直接搜NLog 和 NLog.config添加上就可以了。这里稍微说下,NLog是模块主体,NLog.config是一个配置文件,如果你对NLog足够了解可以自己配置文件。配置文件这是一个配置文件例子<?xml version="1.0" encoding="utf-8" ?> <!--add your
2021-03-08 11:01:39
3809
1
原创 Excel配置数据导入sqlite
Excel配置数据导入sqlite读取excel数据导入到sqlite代码配置读取excel数据导入到sqlite很多游戏都需要配置数据的,有的项目实现一个自己的data编辑器,我只是想让策划在excel里面配置,然后导入到sqlite里面。原理很简单,读取excel然后解析存入sqlite代码using System;using System.Collections.Generic;using System.Linq;using NPOI.SS.UserModel;using Syste
2020-12-16 23:32:52
885
原创 Unreal DXGIGetDebugInterface1 无法定位程序输入点
无语经过我不停的试验终于安装上Unreal了,结果就踩坑了。提示终究还是躲不过升级查了一下这个函数最后才知道需要win8以上才能支持,我win7系统还是out了,升级系统吧,没办法,吃外国软饭的,核心技术掌握在外国只能受制于人。虽说中国win7用户还是很多的,不过看来最新的Unreal也要放弃了win7。可以记住支持win7系统的最新Unreal 4.25.1以前的版本,反正这个版本是不行了。再见了win7。呜呜~~~...
2020-06-22 17:05:10
4954
3
原创 利用C++反射 操作SQL Server
C++ 操作SQL Server介绍 实现一下DBManager,DBManager是服务器程序的基础模块,但不是必选模块。程序接入DBManager是程序的一种惰性模块,所谓惰性模块就是程序启动初始化,等待某种事件调用,不用心跳更新。大部分服务器程序是热衷模块单例类,例如魔兽世界服务器模块这程序主文件里面声明全局变量充当单例模式的角色。初始化的时候调用初始化DB模块,魔兽世界的编程喜欢定义一些宏代替单例代码。日月神教服务器数据库模块本程序初始化我这个就是一个测试bool Gam
2020-06-09 22:41:28
427
1
原创 游戏程序员撸码心法
游戏程序员撸码心法程序架构游戏代码ServerAppDBMangerCacheManagerDataManagerConfigManagerGameMangerSceneManagerPlayerManagerFactionManagerServiceEventManagerTimerManagerLogManagerNetManager最后举例程序架构这张图几乎说明了所有的游戏程序。游戏代码GameApp app;if(app.Init(param)){ app.Run();}S
2020-05-30 23:11:44
834
原创 GameNet 游戏网络库 C#实现
GameNet 游戏网络库 C#实现介绍服务器测试程序客户端测试程序介绍很久没有写博客,面试了几次发现自己实现的东西有点少,面试官问觉得自己就是搬砖,没什么意思,就写点东西。协议用protobuf-net.net 版本用4.5socket用SocketAsyncEventArgs实现网络库写服务器和客户端测试程序代码本身不难,很多零碎的知识点穿插起来难度就会提升。每一个模块我尽量列举实现的原因,有肯能出错坑。先看测试程序。服务器监听一个端口客户端维护64个连接与服务器通信服务器测试
2020-05-24 12:28:41
985
原创 Unity Shader系统知识
Unity Shder系统知识unity系统学习应该分为四块。程序结构就是一个基本的shader结构。语言内置类似于hlsl内置的一堆函数,其实就是熟悉一个shader语言。引擎内置引擎自己扩展了一大部分。include里面会找到。可以说是api吧例子-知识点基础渲染管线 – 进入3d图形学的敲门砖,应该经常翻出来看看。会加深理解,比如三大测试之类的。矩阵推导 – 理解数据怎...
2020-03-13 23:30:28
526
1
原创 Unity脚本生命周期函数
Unity脚本声明周期函数目录Editor开始ResetInit进行初始化设置AwakeEnableStartTick更新游戏逻辑Physic物理FixedUpdateOnTriggerXXOnCollisionXXUpdate逻辑OnMouseXXUpdateLateUpdateRender渲染Visual显示判断OnWillRenderObjectOnBecameVisibleOnBecame...
2020-03-11 21:55:10
773
原创 编译资源文件找不到头文件
今天在编译一个程序的时候提示一个头文件找不到,一直对文件包含感觉理解的很自信,来回找错误,最后发现资源里面竟然也有一个包含目录,然后填写之,果断编译过了。vs配置目录里面真是诡异万分~...
2019-09-06 11:27:39
1222
原创 ShadowMap实现
用directx实现shadowmap先上图一个光围着转圈 很棒的效果。 理解这个东西需要那么点基础,1.基本的编程语言c++ 2.基本的directx图形绘制 3.基本的dxut框架 4.会那么一点点shader好了开始撸软件资源先行我用3dmax创建了几个网格 1.文字 2.龙 3.狮子 老虎 豹子 狼 4.一个地板然后呢 shader接着开始撸...
2018-04-26 22:42:36
1159
转载 预计算辐射
PRT(Precomputed Radiance Transfer)是近几年出现的渲染技术,能够在实时绘制物体时实现光线多次反射、软阴影、子表面散射等效果,可以真实地表现具有一定透明度的物体,例如皮肤。其实现原理主要是通过预计算,渲染公式(p点在d方向的辐射度): L(p->d)=Le(p->d)+∫Fr(p,s->d)L(pp表示当前位置,s和d分别为入射光方向和出射光方向(球坐标方向)
2018-02-06 10:34:21
541
原创 日记三条
渲染流水线 顶点数据->矩阵变换->光照计算->纹理映射->各种测试->各种混合linux启动过程 bios->mbr->bootloader->kernel->init->rc.sysinit->modules.conf->rc.d->rc.local->loginwindows启动过程 bios->bootmgr->winload->ntoskrnl->smss
2018-01-15 16:24:30
252
A星算法和双向A星实现,基于MFC和DirectX9
2025-01-26
ZyGame.GameNet.zip
2020-05-26
cocos2d-x粒子编辑器ParticleEditorv2.0.7
2015-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人