自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

blanc的博客

努力努力 upup

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

原创 网络游戏探索(ing

简述框架:unity(URP + xlua + VMUI)网络层使用udp,客户端使用xlua集成的luasocket,服务端使用c++源码服务端代码:#include <Winsock2.h>#include <cstdio>#include <string.h>#include <stdio.h>#include<map>#include <iostream>using namespace std;#

2020-08-03 00:22:07 234

原创 一个类传奇项目的背包优化记录

简述一个类传奇项目的背包优化记录。环境:cocos+lua记录这是印象比较深的一次优化。当时是因为背包格子数量从几十个变成几百个,导致很卡顿。接手这个系统后,经过分析是有几方面的原因。1 ui加载问题 一开始使用的是异步加载的形式生成所有物品列表的节点,和刷新节点数据。几十个还好,变成几百个,想要一两帧内创建和初始化节点就会导致卡顿,再去滑动就会显得卡顿加载很慢。考虑到打开速度和滑动响应需求,最后参考网上文章用scrowview实现了tablelist这个控件 。Cocos的Scrowv

2020-07-17 10:05:48 736

原创 unity探索记录

光照模型使用unity Universal RP尝试的一个风格化的卡通渲染。使用贴图控制漫反射,r通道新增了y方向用于控制边缘光增加了高光和暗部的偏色,用于控制整体风格参考索引:https://zhuanlan.zhihu.com/p/25844886https://juejin.im/post/5e48df50f265da57642984c6https://www.bilibili.com/read/cv539351/角色控制器受击效果+技能碰撞帧检测参考索引:一个unity

2020-07-06 09:43:45 223

原创 unity基于shader的填充式进度条

简述参考mask 实现一个基于shader,填充方式的进度条mask源码地址: https://bitbucket.org/Unity-Technologies/ui/downloads/?tab=tags效果如图,笔记&详情见注释源码shaderShader "UI/CP3"{ Properties { [PerRendererData] _MainTex ("Texture", 2D) = "white" {} [PerRender

2020-06-02 01:00:27 1373

原创 unity下的广告牌效果笔记

unity下的广告牌效果 // 这段代码使用有一些限制: // 当shader开启批处理时会产生显示错误,即当独享距离摄像机比较远时(视图空间,投影空间),对象会被裁剪,需要关闭批处理 // 不能再Unity的Transform变换界面对其进行缩放和变换 // (1) 求出零点在当前的世界坐标(模型坐标转世界坐标)和观察空间下的位置,不对模型坐标做转化 mul(UNITY_MATRIX_

2020-05-28 11:40:51 589 1

原创 基于pyqt5的屏幕取色

简述一个基于pyqt5的自用屏幕取色器整合一些网上的代码,参考了下官方文档,优化了一下使用体验:放大鼠标处图像,增加十字光标添加pyqt5自带的调色板可复制的颜色编码界面代码及注释:# encoding: utf-8#!/usr/bin/python# colordialog.py"""author: HuangBaiFu欢迎交流:275702919last e...

2020-03-03 20:21:18 2076 2

原创 unity3d使用texturepacke打包后的图集

简述由于项目中的2d光照,需要为序列帧保留法线贴图生成光照,texturepacker最新的版本中是支持相同布局打包,目前看来是最简单省事的办法,但分开打包会影响drawcall次数,影响效率。只能之后再考虑优化了,demo至上。准备安装5.2以上版本的texturepacker如何使用命令行命令行参数查看将安装后bin目录,加入环境变量后输入 TexturePacker 即可查看描述...

2019-12-25 11:52:29 989 1

原创 游戏后台搭建(基于cocoscreator+nodejs+linux-阿里云)

后台搭建环境阿里云linux云服务器(需要为新端口 添加安全组 许可访问)node.jscocoscreator需求全服排行榜存储用户账号运营数据(评估游戏品质)七日留存统计日活统计激励广告展示统计,预计广告收入一 使用nodejs构建http服务安装nodejshttps://www.runoob.com/nodejs/nodejs-install-...

2019-07-09 11:45:00 3749

原创 cocoscreator 打包问题记录

1 没有安卓版本可选择 编辑器targetapilevel没有下拉选项相关报错 > Failed to find Platform SDK with path: platforms;android–1原因 我是直接复制粘贴的android-10 没有安装相关组件 导致异常解决方法打开sdk目录下管理器勾选安装...

2019-06-28 14:21:23 1902

原创 基于nodejs的psd切图功能

使用nodejs 切图###简述项目近期进行大量换皮,需要更高效率的切图,搜索了相关资料后决定使用nodejs下的psd2json模块用于切图,也因为工具链中ui编辑器支持json(需要修改导出规范,正在修改中,但需要美术按规范出psd文件,意义不大)。经使用是节省了一部分重复性高的的工作 如调用ps已录制好动作进行切图,选择存放文件夹;所需要的psd文件 还是需要手动整理好图层的;当然也...

2018-12-26 20:47:32 4306

原创 cocos使用自定义着色器

####简述游戏中图像的一些效果展示,如果每个图像都是用使用对应的效果纹理实现,则会占资源;此时可以编写着色器用于实现效果。cocos2d中使用GLProgram封装了着色器程序对象(Shader Program Object 是多个着色器合并之后并最终链接完成的版本)。为了解除元素与GLProgram 一一对应的关系,无需继承node重写绑定的着色器程序对象。使用了GLProgramSta...

2018-11-30 14:55:07 892

原创 纹理学习笔记

##纹理我所理解的cocos2d-第五章 纹理 相关笔记;以及一些补充及练习###简述:想要增加图形的真实性,我们需要为每个顶点添加颜色来增加图形的细节,需要足够多的顶点,从而指定足够多的颜色,这将产生很多额外开销。使用纹理(Texture),使其贴合到3D模型的面上,可以方便的添加物体的细节。在一张图片上可以插入非常多的细节,这样就可以让物体非常精细而不用指定额外的顶点。此外,纹理也可...

2018-11-27 17:07:24 286

原创 分辨率适配-ipad

简述游戏中美术应有一个统一的设计分辨率,并将位置可能发生变化的节点根据视口大小设置坐标,即可保证相对位置,当使用FIXED_xxx作为适配方案时固定边相关坐标可不参照视口大小;应用local frame_size = glview:getFrameSize()--宽高比较大的时候 x轴上的ui x坐标将缩小 将会挤在一起 此时需调整x轴上的缩放;--@解决方案为FIXED_...

2018-09-04 19:33:18 1961

原创 安卓包调试

简述记录模拟器中如何调试安卓包步骤安装adb,android studioandroid studio 搭建好安卓开发环境后 新建项目;dos窗口下:使用adb链接夜神提供端口 adb connect 127.0.0.1:62001;连接成功即可打印调试信息使用相关命令查询包名,之后使用adb push命令替换本地文件如 adb push F:\cq03\client...

2018-09-04 11:06:37 490

原创 游戏中的资源管理-纹理

纹理资源简述:游戏中的图片资源,需要根据不同的情况将其规划成几张大图,有针对性的加载纹理,可以减少纹理的内存占用,减少绘制的批次(cocos中的自动批量绘制功能)。 资源打包在资源编辑工具的文件夹下,使用ruby脚本调用TexturePacker 和 pngquanti工具提供的命令行(需要安装这两个软件并将运行目录添加到环境变量中) 将资源进行打包成大图与对图片进行压缩。...

2018-08-20 19:08:25 1502

原创 背包系统编写

背包系统编写简述:项目中由于背包系统的数据处理存在问题,导致操作背包时导致卡顿; 优化思路:将背包涉及到的数据分开处理(各用一份table)-回收缓存,仓库数据,背包分类数据,背包数据改变需要派发到监听者的信息。 由于服务端是每个物品单独下发一次协议,一帧内可能存在大量下发,故缓存至一个cache列表,在下一帧更新背包数据,及派发背包数据改变事件(一帧派发一次,包含的数据为一帧...

2018-08-14 17:52:59 1766

原创 游戏中的数据处理-挂机技能释放优先级

游戏中的数据处理简述:记录一些项目中 遇到的有关于数据处理的问题例一:项目中有挂机设定,期间需根据不同情况自动释放技能; 思路:使用权重计算技能释放的优先级,脱离原先多层级的if else语句,理清的逻辑关系以数据的方式呈现。代码实现:----环境状态 外部对权重计算的影响--是否需要释放群体技能local is_need_multi = GuajiCtrl.Is...

2018-08-09 20:37:01 602

原创 cocos-瓦片地图使用

瓦片地图简述使用瓦片地图提高资源复用率,提高开发的效率;图块大小可根据需求调整; 相关工具:Tiled-瓦片地图编辑工具Tiled使用详细使用:cocos瓦片地图编辑 步骤: 新建tmx文件:文件-新文件-设置块大小 新建图块,导入资源图片,该资源需放置在res目录下,否则会找不到资源 新建所需图层,进行编辑。 加入阻挡图层,添加块属性 click= 1;...

2018-08-08 22:53:33 1428 2

原创 lua链表运用-cocos-lua创建连线图(UI笔记)

根据坐标链表 生成连线图简述:项目中需要生成一个连线图,使用链表储存连线所需的点,再根据相连的下个点,进行精灵的缩放与调整角度。--点之间的连线 使用九宫格精灵function BattleFuwenView:CreateLinkLineView(parent) local view = XUI.CreateLayout(0, 0, 0, 0) parent:addChi...

2018-07-26 20:34:09 551

原创 使用3d坐标系 在游戏中添加2d用及3d用的摄像机

简述:用于计算3维平面上的交互,如:求射线与球面的交点,转化为2d坐标; 使用一个正射投影摄像机,控制旋转的角度(俯视则绕x轴旋转),调整到所需的视角。此时可设置物体z坐标,控制物体位置。摄像机设定3角函数sin:对边/斜边 cos:直角边/斜边 tan:对边/直角边相关代码---- cocos2dx一开始会创建一个默认摄像机default,默认摄像机用于...

2018-07-17 10:11:48 615

原创 基于cocos2dx-lua,udp的局域网游戏

局域网游戏相关简述:使用数据库存储玩家的状态,服务端更新数据库及控制客户端刷新。 1 区分 自己与其他玩家; 即接收到信息时,只接收其他客户端发送的游戏命令,不接收与执行自己发送的命令。创建角色时,使用角色名作为客户端标志。接收数据时进行判断。 2 将游戏命令与协议收发分离,两者不应绑定。执行命令时判断是否需要发送至服务端(接收协议时 不应重复发送 否则进入死循环)。 笔记:...

2018-07-02 11:55:31 977

原创 游戏框架探索-重放系统

播放系统简述: 记录游戏场景中的命令,保存为文件;播放时加载文件并解析,生成命令流,由游戏进行播放; 小结: 花的时间主要在于 游戏命令的封装;播放文件的保存与加载播放; 每次执行命令后 游戏逻辑的运算结果需一致; 目前仅有重放,待拓展的有撤销(提供一个“相反”的命令) 和 重做 等,即维护一个命令的列表,从而控制游戏的流程; 代码应用:--该条命令记录了将player对象移...

2018-06-13 16:15:45 312

原创 元表与元方法

元表与元方法简述:系lua程序设计第13章笔记,并做了一些拓展,lua版本5.3------------------------------集合计算,算术元方法----------------------------local set = {}local mt = {}function set.new(l) local t = {} setmetatable(t...

2018-04-24 10:47:45 510

原创 lua使用协同程序实现迭代器-笔记

function printResult( a ) local str = "" for i=1,#a do str = str .. a[i] .. " " end print("--" .. str .. "\n")endfunction permgen(a, n) n = n or #a if n &lt;= 1 then...

2018-04-09 08:45:12 178

原创 lua协同实现 消费-生产关系

--协同实现 消费-生产关系function receive(prod) --消费者需要值时,唤醒生产者产生一个值;即消费者驱动 local status, value = coroutine.resume(prod) return valueendfunction send(x) --生产者负责发送产生的值,发送后挂起 coroutine.yie...

2018-04-08 08:36:08 115

原创 lua尾调用实践-room游戏

lua尾调用实践简述:数据驱动+尾调用 实现的一个找房子游戏 笔记: table构造时,表内元素仅取当前外部值(即不会随外部值改变而改变);如果想存储一个函数,函数应已被定义。--@author blanc 2018/3/27local move_key = { a = &quot;left&quot;, d = &quot;right&quot;, s = &quot;down&quot;, w = &q

2018-03-27 11:07:36 232

原创 基于cocos-lua实现的数字滚动效果

基于cocos-lua实现的数字滚动效果简述: 项目中需要一个抽奖奖池的显示,基于此,设计一个具有图片滚动功能的控件。 实现思路: 1 创建数字对象(也可以是图片,使用id标记)--变动数字local function creat_one_change_num(x) local node = XUI.CreateLayout(x, 110, 30, 150) l...

2018-03-24 11:10:55 4231 2

原创 opengl为每一个物体添加完整的边框

opengl每一个物体添加完整的边框简述:通过控制深度测试,及模板缓冲的清除。当开启边框绘制后,可绘制完整物体边框或物体连接的整体边框。 问题:轮廓物体绘制后,如果再次绘制物体需要另外处理。代码流程: //先进行模板缓冲测试,在进行深度测试glEnable(GL_DEPTH_TEST); //深度测试glEnable(GL_STENCIL_TEST);glStencil...

2018-03-23 18:36:57 1627

原创 cocos-lua 实现状态机(组件模式)

lua状态机实现环境: quick-cocos 简述:提供状态列表设置的接口setupState(),状态列表中包含状态名称及相关调用函数,提供执行状态函数doEvent()1. 在状态的execute函数内编写状态切换判断的逻辑,该函数在对象重写并传入到对象的内建状态机。2. myStateMachine继承自quick的Component类(含有事件派发机制)代码:bas...

2018-03-22 10:56:31 982

原创 使用python解析xls生成lua配置

使用python解析xls生成lua配置 简述:使用python解析xls生成角色lua配置,根据id获取配置-获取类型和等级,生成游戏对象。得到类型和等级后通过ObjManger类获取相应属性及特殊处理。

2017-12-20 10:01:44 970

原创 命令模式-unity实现

命令模式-unity实现一 · 概述​ 1.系游戏编程模式中命令模式一节笔记​ 2.在unity下实现该模式,其应具有撤回,重做,重放等功能二 · 命令模式简述(一):​将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化; 对请求排队或记录请求日志,以及支持可撤销的操作[1]。要点将一组行为抽象为对象,这个对象和其他对象一样可以被存

2017-10-30 22:01:20 366

空空如也

空空如也

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

TA关注的人

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