自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 Unity场景光照数据Light data asset

打开Window->Rendering->Lighting面板,找到Scene标签。逐个排查定位到光照数据丢失或不正确导入,发现场景里没有预先生成光照数据资产。首先描述一下遇到的问题,游戏运行过程中切换场景之后发现模型接收的光照不对。点击Generate Lighting按钮,主要在运行模式下是不可点击的。完成上述操作步骤之后,在运行中切换场景,光照都会显示正常。排查了灯光参数和环境光以及着色器都没发现异常。打开需要生成光照数据资产的场景。

2024-04-22 20:10:46 104

转载 GitHub SSH Key

2. 将公钥添加到GitHub账户中:复制生成的公钥(一般为~/.ssh/id_rsa.pub),进入GitHub网站,打开“Settings”菜单中的“SSH and GPG keys”页面,点击“New SSH key”按钮,然后将公钥粘贴到对应的输入框中并保存。GitHub SSH Key是用于通过SSH协议与GitHub进行安全通信的一种身份验证方式。3. 代码推送和拉取:在本地计算机生成和配置SSH Key后,在push和pull代码时,可以使用SSH协议进行加密通信,确保代码的安全性和完整性。

2024-04-16 21:08:39 6

转载 Profiler EditorOnly [Loading.CheckConsistency [Editor Onlye]]

Unity性能优化

2022-11-01 10:59:36 599

转载 通过命令行无法使用svn

将svn加入环境变量后,在命令窗口输入命令依旧显示:'svn' 不是内部或外部命令,也不是可运行的程序或批处理文件。原因是缺少svn.exe文件,缺少这个是因为开发环境中我们安装TortoiseSVN客户端都是选择默认安装,缺少command line client,可以在不需要重新安装的情况下补上该服务,首先1、点击TortoiseSVN安装包,双击安装包 > Next > Modify2、将command line client tools选中为安装到本地(默认该tools是不安装的

2021-08-10 10:40:48 1286

转载 C++调用虚函数是如何确定是虚函数表中的哪一项?

class Base{public:virtual func1() {};virtual func2() {};}class Child : public Base{public:virtual func1() {};virtual func3() {};}Base* b = new Child();b->func1();要讨论的是 `b->func1()`编译器以及运行时是怎么操作的先说结论:1.编译器会给每个虚函数指定一个在虚函数表中的索引...

2021-07-26 00:51:46 671 1

原创 Lua读写文件

lua里的文件读写模型来自C语言,分为完整模型(和C一样)、简单模型。1、简单模型io.input([file]) 设置默认的输入文件,file为文件名(此时会以文本读入)或文件句柄(可以理解为把柄,有了把柄就可以找到文件),返回文件句柄。io.output([file]) 设置默认的输出文件,参数意义同上。io.close([file]) 关闭文件,不带参数关闭默认的文件io.read(formats) 读入默认文件,formats取值为"*a"(读入全部)、“*n”(按数字读入)、 "..

2021-05-30 16:30:14 4815

转载 详解 TCP 连接的“ 三次握手 ”与“ 四次挥手 ”

TCP Connection客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西;由于TCP不存在连接的概念,只存在请求和响应,请求和响应都是数据包,它们之间都是经过由TCP创建的一个从客户端发起,服务器接收的类似连接的通道,这个连接可以一直保持,http请求是在这个连接的基础上发送的;在一个TCP连接上是可以发送多个http请求的,不同的版本这个模式不一样。在HTTP/1.0中这个TCP连接是在http请求创建的时候同步创建的,http请求发

2021-05-09 18:31:07 230

原创 Python

工作中一直在使用Jenkins(开源的可扩展持续集成引擎)进行更新出包,打包机本地打包操作是通过python脚本执行的,在排查问题的时候,python代码有些东西是在看不懂,所以花点时间总结了一下常用的,希望能帮到有需要的人,也作为自己的学习总结。有错误的地方也欢迎各位指出。入口函数python的入口函数类似于C++脚本中main()函数,不过Python属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。python脚本文件除了可以直接再pyth..

2021-05-08 16:59:29 99

原创 Windows平台监控Android App应用

1.adb.exe原理:adb 的运行原理是 PC 端的 adb server 与手机端的守护进程 adbd 建立连接,然后 PC 端的 adb client 通过 adb server 转发命令,adbd 接收命令后解析运行。命令语法基本命令:adb 命令的基本语法如下:adb [-d|-e|-s <serialNumber>] <command>如果只有一个设备/模拟器连接时,可以省略掉[-d|-e|-s <serialNumber&g..

2021-05-07 21:40:26 697

原创 Cocos2d-x-3.17.2 升级spine

前言:工作中一直是使用flash在做动画表现,随着flash的被遗弃,现在很多2D游戏动画都转为spine在做,业余时间就想尝试在cocos2dx中使用使一下spine。结果发现创建spine动画的时候报错:查资料说是需要升级到最新的spine库,于是开始升级spine到最新版本。下面是一些我的环境配置:cocos版本:cocos2d-x 3.17.2spine更新库下载地址:https://github.com/EsotericSoftware/spine-runtimes平...

2021-05-02 19:19:53 2168 7

转载 std::function

通过std::function对C++中各种可调用实体(普通函数、Lambda表达式、函数指针、以及其它函数对象等)的封装,形成一个新的可调用的std::function对象;让我们不再纠结那么多的可调用实体。其中Lambda表达式也是C++11新增的内容。具体还不了解,应该类似于C Sharp中的Lambda表达式吧!#include <functional>#include <iostream>using namespace std;std::function&lt

2021-04-28 20:04:01 162

原创 Cocos2dx-lua在Win32平台调试输出配置

新建项目:在main.cpp中加入以下代码:#ifdef USE_WIN32_CONSOLE AllocConsole(); freopen("CONIN$", "r", stdin); freopen("CONOUT$", "w", stdout); freopen("CONOUT$", "w", stderr);#endif AllocConsole函数不能改变控制台窗口在屏幕上的位置、尺寸等属性。以下函数可以控制&获取控制台相关信息。GetConsol

2021-04-07 19:39:35 460

原创 使用VSCode调试C++工程

官方教程:https://code.visualstudio.com/docs/cpp/config-mingwtasks.json 负责编译生成可执行文件(.exe)launch.json 进行代码调试c_cpp_properties.json 拓展1.这里用添加引用eigen类库举例:首先添加eigen库的路径到IncludePath. (c_cpp_properties.json){ "configurations": [ {

2021-04-03 23:28:04 518

转载 Lua中的userdata

原文http://www.jellythink.com/archives/587话从这里说起在我发表《Lua中的类型与值》这篇文章时,就有读者给我留言了,说:你应该好好总结一下Lua中的function和userdata类型。现在是时候总结了。对于function,我在《Lua中的函数》这篇文章中进行了总结,而这篇文章将会对Lua中的userdata进行仔细的总结。对于文章,大家如果有任何疑议,都可以在文章的下方给我留言,也可以关注我的新浪微博与我互动。学习,就要分享,我期待你的加入。use..

2021-03-30 02:03:15 601

转载 Lua设计与实现--GC

本文转载自知乎专栏作家@张德嘉 的 Lua设计与实现,链接地址:https://zhuanlan.zhihu.com/p/144875092。1.背景和C#、Java类似,lua采用了Mark&Sweep的算法来进行垃圾回收,与之相对的还有个常用算法是Automatic Reference Counting(ARC)。Mark&Sweep的优点在于不用像ARC在每次赋值操作去操作引用计数(对于动态语言效率有较大影响),也不会有环形引用的问题,但是由于Mark&Sweep在触发

2021-03-29 11:20:07 328

转载 Lua设计与实现--函数

本文转载自知乎专栏作家@张德嘉 的 Lua设计与实现,链接地址:https://zhuanlan.zhihu.com/p/61441722。函数是任何语言设计里都不可或缺的一环,因为代码的执行几乎完全是依附在函数body里来完成的。本文主要从lua函数的C源码实现机制着手,来介绍lua函数的设计和实现特点。1. 函数闭包首先,所有的lua函数,都是一个函数闭包。函数闭包是目前主流语言几乎都支持的一个机制,它指的是一个内部结构,该结构存储了函数本身以及一个在词法上包围该函数的环境,该环境包含了函数

2021-03-29 11:16:54 302

转载 Lua设计与实现--Table

本文转载自知乎专栏作家@张德嘉 的 Lua设计与实现,链接地址:https://zhuanlan.zhihu.com/p/87400150。Table的设计哲学table应该算是lua最灵魂的一个结构了。它有以下特点:容器功能:与其他语言相似,lua也内置了容器功能,也就是table。而与其他语言不同的是,lua内置容器只有table。正因为如此,为了适配不同的应用需求,table的内部结构也比较考究,分为了数组和哈希表两个部分,根据不同需求来决定使用哪个部分。 面向对象功能:与其他语言不同的

2021-03-29 11:10:51 248

转载 Lua设计与实现--虚拟机

本文转载自知乎专栏作家@张德嘉 的 Lua设计与实现,链接地址:https://zhuanlan.zhihu.com/p/61888678。同时,本文虚拟机的概念和类型划分的内容主要参考了这篇blog的,里面讲的挺详细的。虚拟机基本概念虚拟机指借助软件系统对物理机器指令执行进行的一种模拟。首先,对于物理机器的执行,主要是机器从内存中fetch指令,通过总线传输到CPU,然后进行译码、执行、结果存储等步骤。既然虚拟机是对其进行的一种模拟,那么也逃不过以下几个特点:将源码编译成VM所能执行的字节

2021-03-29 11:07:38 267

转载 Lua设计与实现--字符串

本文转载自知乎专栏作家@张德嘉 的 Lua设计与实现,链接地址:https://zhuanlan.zhihu.com/p/61441722。长串和短串在讲String的数据结构和重要函数前,先强调一点,出于对性能和内存等方面的考虑,lua对String实现的方方面面,都把短字符串和长字符串区分开来处理了。比如短串会走一个先查询再创建的路子,而长串不查询,直接创建。我个人的理解大概是出于以下两个方面考虑:复用度。短串复用度会比长串要高,或者说短串在全局的引用计数一般会比长串高。比如obj["id"

2021-03-29 11:03:27 510

转载 Lua设计与实现--数据类型

本文转载自知乎专栏作家@张德嘉 的 Lua设计与实现,链接地址:https://zhuanlan.zhihu.com/p/61331607。数据类型Lua中的数据类型主要分为以下几类:可以看到除了LUA_TNONE,lua支持了9种基本类型。其实对于某些基本类型,lua还用了一个叫做variant tag的标记来定义其子类型,具体参见下图:比如string又细分为短string和长string,主要区别在于它们的hash值生成;而number也细分为了float和inte..

2021-03-29 11:00:59 235

转载 Lua-Coroutine(协同例程)

Lua 支持 coroutine ,这个东西也被称为协同式多线程 (collaborative multithreading) 。Lua 为每个 coroutine 提供一个独立的运行线路。然而和多线程系统中的线程不同,coroutine 只在显式的调用了 yield 函数时才会挂起。coroutine.create(func)创建一个 coroutine 需要调用一次coroutine.create()。它只接收单个参数,这个参数是 coroutine 的主函数。create函数仅仅创...

2020-12-29 16:14:15 375

原创 【Lua】面向对象的实现方式

第一种实现方式:(实现了私有变量和公有变量)local BaseClass = { ctor = function (self, params) self._name = params.name or "John" self._sex = params.sex or "man" end, new = function (mt, params) local instance = { privateElem.

2020-12-09 18:30:23 268

转载 Lua中正则表达式的使用整理

在Lua中使用正则表达式进行模式匹配的string库函数有这四个:string.find(str, pattern[, init[, plain]])string.gsub(str, pattern, repl[, n])string.match(str, pattern[, init])string.gmatch(str, pattern)这几个函数的使用方法在前面Lua中string常用api用法整理已经介绍过了,这里就不赘述了!在Lua中进行模式匹配的时候支持的字符类如下:

2020-12-08 17:28:06 524

转载 Cocos2dx 颜色混合BlendFunc

一、概念 “混合”是指两种颜色的叠加方式。在新图片将要渲染画到屏幕上的时候,将用在新图片中的红、绿、蓝和透明度信息,与屏幕上已经存在的图片颜色信息相融合。 说的具体一点,就是把某一像素位置上原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。 新图片颜色被称作“源颜色”,而屏幕上已存在的图片颜色则被称作“目标颜色”。 OpenGL会把源颜色和目标颜色各自取出,并乘以一个系数(源颜色乘以的系数称为“源因子”,目标颜色乘以的系数称为“目标因子”),然后相加,这...

2020-12-01 20:48:39 344

转载 Lua pairs与ipairs效率分析

介于大家目前有些人比较关心 lua table中pairs 和 ipairs的效率问题, 特此研究了一下... 如有不正 还需指出..首先来看下 lua中table的结构定义:table中分为2个存储空间, 一个是线性数组空间(TValue *array), 和一个hash空间(Node *node)当我们使用 pairs 和 ipairs 会产生两种不同的迭代器, 一个仅仅遍历数组, 一个遍历所有的值所以, 当调用ipairs的时候, 在线性数组中遇到第一个nil时便停止遍历...

2020-10-23 00:29:59 1240

转载 Lua 字符串处理

参考链接:https://baike.baidu.com/item/%E5%AD%97%E7%AC%A6%E7%BC%96%E7%A0%81/8446880?fr=aladdin#7http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.htmlhttp://blog.csdn.net/r0ck_y0u/article/details/51883955一.字符编码字符编码的发展史:ASCII->Unico..

2020-08-03 11:52:34 1062

转载 Lua 表(table)

介绍表(Table)是Lua语言中最主要(事实上也是唯一的)和强大的数据结构。使用表,Lua语言可以以一一种简单、统一且高效的方式表示数组、集合、记录和其他很多数据结构。Lua语言也使用表来表示包( package )和其他对象。当调用函数math.sin时,我们可能认为是“调用了math库中函数sin”; 而对于Lua语言来说,其实际含义是“以字符串"sin"为键检索表math”。Lua语言中的表本质上是一种辅助数组( associative array ),这种数组不仅可以使用数值作为索引,也可

2020-06-02 21:39:47 4286

原创 Cocos2d-x 事件机制

基本元素事件监听器(EventListener):负责接收事件,并执行预定义的事件处理函数 事件分发器(EventDispatcher):负责发起通知 事件对象(Event):记录事件的相关信息Node: //_eventDispatcher统一指向CCDirector中的_eventDispatcherclass CC_DLL Node : public Ref...

2020-02-26 19:55:37 595

原创 Cocos内存管理

在cocos2dx-3.17.2中的自动内存管理机制是借助引用计数来实现的。内存管理的实现基于Ref这个类,基本的原理就是其内部存在一个引用计数_referenceCount,当这个引用计数为0的时候,就会被释放。引用计数通过retain,release来操作。/** * Ref is used for reference count management. If a class inhe...

2020-02-25 22:16:55 692

原创 STG游戏中瞄具的基本原理

机械瞄具照门:缺口式照门(u型,v型) 战孔式照门(圆孔)安装位置 枪管上侧 枪管左右侧:为了快速装弹(有些枪械从上方装弹)光学瞄具 红点瞄具(内红点瞄具) 全息瞄具 镭射瞄具 望远镜瞄具 主要内容来自于Youtube:https://www.youtube.com/watch?v=pWpaWdF0uXA...

2020-02-25 13:26:07 382

翻译 C++ std::map

模板:template < class Key, // map::key_type class T, // map::mapped_type class Compare = less<Ke...

2020-02-24 21:51:57 555

转载 C++类模板(模板类)详解

人们需要编写多个形式和功能都相似的函数,因此有了函数模板来减少重复劳动;人们也需要编写多个形式和功能都相似的类,于是C++引人了类模板的概念,编译器从类模板可以自动生成多个类,避免了程序员的重复劳动。例如,在《C++运算符重载》一章中的《C++实现可变长度的动态数组》一节中,我们实现了一个可变长的整型数组类,可能还需要可变长的 double 数组类,可变长的 CStudent 数组类,等等。...

2020-02-24 20:49:51 365

翻译 C++ std::unordered_map

模板:template < class Key, // unordered_map::key_type class T, // unordered_map::mapped_type class Ha...

2020-02-24 20:42:38 505

原创 C++ 友元(友元函数 && 友元类)

私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行。这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦。C++是从结构化的C语言发展而来的,需要照顾结构化设计程序员的习惯,所以在对私有成员可访问范围的问题上不可限制太死。C++ 设计者认为, 如果有的程序员真的非常怕麻烦,就是想在类的成员函数外部直接访问对象的私...

2020-02-24 15:30:08 435

转载 C++ 四种类型转换操作符

在c++中进行类型转换只需要在变量前加上变量类型,并且转换是双向的。例如:int i = 0;double d = 1.9;int i1= (int) d;double d1= (double) i;这种类型转换方式只适用于基本数据类型,对复杂的自定义类型不适用。因此,C++中提供了四种类型转换符:static_cast、dynamic_cast、const_cast...

2020-02-22 17:22:27 1073

原创 C++ std::function

定义:template <class T> function; // undefinedtemplate <class Ret, class... Args> class function<Ret(Args...)>;该类可以将任何类型的可调用元素(如函数和函数对象)包装到可复制对象中,且其类型仅取决于其调用签名(而不取决于可调用元素类型本身...

2020-02-22 16:31:34 252

翻译 C++ std::bind

simple(1)template <class Fn, class... Args> /* unspecified */ bind (Fn&& fn, Args&&... args);simple(2)(带返回类型)template <class Ret, class Fn, class... Args> /*uns...

2020-02-21 21:41:17 120

原创 C++ Typedef和define的用法

Define定义:define,宏定义,C语言中预处理命令一种。分为无参宏定义和带参宏定义。无参宏定义的一般形式为:#define 宏名字符串; 带参宏定义的一般形式为:#define 宏名(参数表)字符串。#define 命令是 C 语言中的一个宏定义命令 ,它用来将一个标识符定义为一个字符串 , 该标识符被称为宏名, 被定义的字符串称为替换文本。[1]该命令有两种格式...

2020-02-20 19:29:10 540

翻译 C++ td::nothrow

定义:std::nothrow被用来作为new操作符的一个参数。平时使用new申请内存失败的话会直接抛出bad_alloc异常。如果使用new(std::nothrow)申请内存失败的话,此时不会抛出一个异常而是返回一个空指针。这个常量是nothrow_t的一个值,他的作用是触发new操作符的另一个版本的重载方法(该重载方法接受一个nothrow_t类型的参数)。默认情况下,n...

2020-02-20 16:14:38 537

转载 基于传染病引发的概率问题(独立概率和条件概率)

概要:昨天工作群发了一个关于传染病的感染感染概率问题,整个群都炸了,策划,后端,前端,测试各自用自己的思维尝试给这个问题一个正确的答案。当然了,我也加入其中了,不过结果却,emmm,让我开始怀疑自己是不是不太适合做一个程序员。问题:讨论结果:最终讨论结果我觉看起来比较靠谱的大概有两个: 52.734375% 计算思路 50% 计算思路我们最后在讨...

2020-02-13 14:33:54 1692 3

空空如也

空空如也

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

TA关注的人

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