自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(371)
  • 资源 (2)
  • 论坛 (2)

转载 【cocos2d-x 源码解析】shader 实现

文件结构cocos2d-x 与 shader 相关的代码在 renderer 目录下|-cocos |-renderer |-CCGLProgram.h |-CCGLProgram.cpp |-CCGLProgramCache.h |-CCGLProgramCache.cpp |-CCGLProgramState.h |-CCGLProgramState.cpp |-CCGLProgr

2020-10-02 11:31:53 22

原创 cocos2d-lua性能优化

性能优化:1 入场动画/分帧加载,避免一帧处理过多 <阵容出场动画> 2 延迟释放(popScene时,因为切换场景/回收一瞬间时会卡顿)3 预加载资源(即提前裁入内存, 音效/spine/…)低端机卡顿优化(像iphone5内存512M):设置纹理格式(内存) / 不播特效… / 清楚unse纹理和spine / 删除预加载(战斗界面)编程基础:有重复用for循环或正则表达式 数据驱动(把数据抽象为数组或配表)适配原则:1 屏幕左边时锚点x设为0,位置=0。

2020-09-25 11:39:41 63

转载 lua开发/ 腾讯 Bugly / 截屏 / 遮罩

lua 中的assert 与loadstring 问题

2020-09-15 09:31:54 53

转载 git报错:remote: warning: Large files detected. / 移动文件夹

今天在用git上传文件的时候,一不小心多上传了个压缩包,130M,然后就出现问题了。。一、码云上传文件的大小来自码云的公告: 对于普通用户码云单个仓库限制为1G,单个文件限制100M。如果超过限制,您的代码将无法推送,我们提供的只是代码托管平台, 不是网盘,二进制文件请勿存放在码云,我们会不定期执行仓库大小扫描,如果发现你您的仓库超过大小超过1G,我们会联系您处理, 如果您15个工作日内没有处理,我们将暂停您的仓库的访问,请注意,我们只是暂停您仓库的访问,并不是删除您的仓库, 如果您超过半年没有处

2020-09-07 14:48:54 40

转载 SVN Cleanup之后显示Skipped remains conflicted

试了好多方法都不行,这个方法可以 特此记录。skipped 意为:跳过此目标文件;一般出现在目标文件被删除后,重新更新情况下;解决办法及结果:1,回到此目标文件的上一层文件夹,team-clean up,结果不成功2,回到此目标文件的上一层文件夹, svn-revert,结果成功...

2020-08-28 09:54:57 37

转载 代码里的世界观——通往架构师之路

https://www.cnblogs.com/juanzhi/p/12371041.html

2020-08-15 10:11:27 63

转载 文件夹对比 / beyond compare Beyond Compare 4提示30天评估期结束解决办法

第一种1、在搜索栏中输入 regedit ,打开注册表2、删除项目CacheId :HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare 4\CacheId

2020-07-31 15:50:56 151

原创 前端代码规范及示例参考

★ 类成员变量命名规则成员变量需要在构造函数里定义并初始化,并根据实际意义赋予一定的注释加以说明,便于代码阅读。1首字母小写,以驼峰的编写方式,尽量简短意思明确,不要使用难以理解的单词或者奇怪的拼音组合。2私有成员变量必须以下划线开头local TestClass = class("TestClass") --构造函数function TestClass:ctor() self._data = {} --私有成员变量必须以下划线开头,再以驼峰的编写方式 self....

2020-05-30 11:06:28 119

转载 WebGL和canvas渲染方式 Webkit区别

Laya引擎支持WebGL和canvas两种渲染方式,可以在引擎初始化时选择渲染方式Laya.init(width,height,WebGL);//WebGL模式Laya.init(width,height);//canvas默认为canvas模式canvas是一个H5标签,作用是在网页上画图,但是只支持2D,不支持3D。WebGL是一种3D绘图标准,WebGL支持3D,且性能优于canva...

2020-04-17 09:57:40 321

原创 着色器语言

Metal Shading LanguageMetal 的着色器用的是一门专门的语言,叫Metal Shading Language(大概可以叫MSL?)。既然是一门专门的语言, 资料就只有官方文档了:「Metal Shading Language Specification」。它是一门单独的语言,但它不是全新的。它是 C++14 的一个子集,然后做了不多的扩展。和GLSL比,尤其是熟悉 C+...

2020-04-14 10:26:20 123

转载 lua关于require和package.loaded常被忽略的故事 / luajit / luajavaBridge

用require函数只能加载一次,因为它的特性是:1、require函数会搜索目录加载文件2、require会判断是否文件已经加载避免重复加载同一文件。而这个特性二,虽然我们可能知道这两个特性,但是潜意识里面常常把这个特性二给忽视掉了.直到哪天我们需要反复加载同一个lua文件,但是没有实现自己想要效果的时候,才会发现这个特性二的存在感特别强!也许有的小伙伴,会有疑问,为什么要反复加载啊?...

2020-03-27 19:35:23 94

转载 cocos2dx3.0导出自定义类到lua的方法详细步骤 / JSB一样

我写了一个用3.0的工具导出类到lua,自动生成代码的方法。以前要导出c++类到lua,就得手动维护pkg文件,那简直就是噩梦,3.0以后就会感觉生活很轻松了。下面我就在说下具体做法。1、安装必要的库和工具包,以及配置相关环境变量,请按照cocos2d-x-3.0rc0\tools\tolua\README.mdown说得去做,不做赘述。2、写c++类(我测试用的是cocos2d-x-3....

2020-03-19 19:58:44 146

转载 Cocos2d Lua开发环境完全搭建

总体思路:用cocos2d自带的phthon脚本生成工程,cocos2d自带lua虚拟机,通过babelua插件显示已经创建的lua工程 然后通过代码中增加lua-cocos2d的接口来创建工程安装visual studio 2013 http://pan.baidu.com/s/1i5QMW1v安装python http://pan.baidu.com/s/1eSy2I9...

2020-03-12 18:55:13 117

转载 C++十大设计模式(易懂)

单例模式单例模式:确保一个类只有一个实例,并且这个实例化向整个系统提供(例如只有一台打印机,可以有多个打印任务队列,但是只能有一个正在打印)。单例模式又分为(饿汉模式,懒汉模式)两种饿汉模式:程序运行即创建对象并实例化,静态实现所以线程是安全的 懒汉模式:创建对象不实例化,需要的时候才实例化,线程不安全需要(加锁)工厂模式:建立对象的类就如一个加工厂,建立对象就如一个产品,使用...

2020-03-12 11:11:50 94

转载 cocos2dx lua类及继承,class解析

学习quick cocos2dx,首先必须要掌握基本的lua知识,在quick中,大量出现了类,继承以及class,因此个人认为必须对这一块有很好的理解。首先,先描述一下lua的自定义类的写法,这是从function.lua中注释中摘录出来的,个人觉得描述的比较详细。创建一个类//定义名为 Shape 的基础类local Shape = class("Shape") // ctor(...

2020-03-11 21:37:44 121

转载 Top K问题-海量元素取最大的前k个元素

在大规模数据处理中,经常会遇到的一类问题:在海量数据中找出出现频率最高的前k个数,或者从海量数据中找出最大的前k个数,这类问题通常被称为top K问题。例如,在搜索引擎中,统计搜索最热门的10个查询词;在歌曲库中统计下载最高的前10首歌等。eg:有1亿个浮点数,如果找出期中最大的10000个?该题目解法有很多,以下逐个阐述   最容易想到的方法是将数据全部排序,然后在排序后的集合中进行查找,...

2020-03-10 10:12:35 133

转载 多态 在游戏程序实例

在面向对象的程序设计中,使用多态能够增强程序的可扩充性,即程序需要修改或增加功能时,只需改动或增加较少的代码。此外,使用多态也能起到精简代码的作用。本节通过两个实例来说明多态的作用。游戏程序实例游戏软件的开发最能体现面向对象设计方法的优势。游戏中的人物、道具、建筑物、场景等都是很直观的对象,游戏运行的过程就是这些对象相互作用的过程。每个对象都有自己的属性和方法,不同对象也可能有共同的属性和方法...

2020-03-07 18:18:55 151

转载 搞明白JavaScript中的匿名函数

一般的有名函数:function myFun( a,b ){ console.info( a+b );}myFun( 10 , 30 ); // 输出40匿名函数: 有关键词 function, 有小括号,有大括号,就是没有函数名。function(a,b){ console.info( a+b );}想要执行它,怎么执行?没有名字,怎么调用?方式一:把它放...

2020-03-07 17:47:08 94

原创 javascript基础语法

20个必会的JavaScript面试题 < 7 8 17 18>- https://segmentfault.com/a/119000000878593110个流行的JavaScript面试题<1 2 8道> - https://segmentfault.com/a/119000001937959950道JavaScript基础面试题(附答案)-----------...

2020-03-05 21:13:56 115

转载 JavaScript ECMAScript、BOM、DOM

一、JavaScript简介JavaScript是一种解释执行的脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型,它遵循ECMAScript标准。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,主要用来给HTML增加动态功能。几乎所有主流的语言都可以编译为JavaScript,进而能够在所有平台上的浏览器中执行JavaScript是一种可以...

2020-03-05 11:07:59 85

转载 JavaScript 内存泄漏教程

一、什么是内存泄漏?对于持续运行的服务进程(daemon),必须及时释放不再用到的内存。否则,内存占用越来越高,轻则影响系统性能,重则导致进程崩溃。不再用到的内存,没有及时释放,就叫做内存泄漏(memory leak)。有些语言(比如 C 语言)必须手动释放内存,程序员负责内存管理。char * buffer;buffer = (char*) malloc(42);// Do som...

2020-02-22 11:56:46 181

原创 面试二(Tencent网易面试题)

面试提问:JS是怎么运行的? 自己怎么写个小游戏<使用Canvas>? 开放数据咋跑起来?网络:3、在浏览器里输入美团网的URL,会经历哪些过程和设备。4、HTTP的请求方式有哪几个?get和post之间的区别?8种数据类型有哪些? 内存溢出和内存泄漏的区别? 计算机网络,问了我7层有哪7层? 16、接着问了我TCP在哪层,UDP在哪层,HTTP在哪层? ...

2020-02-20 20:57:28 210

转载 TypeScript中的函数与类

TypeScript中的类传统的JavaScript程序使用函数和基于原型的继承来创建可重用的组件,但对于熟悉使用面向对象方式的程序员来讲就有些棘手,因为他们用的是基于类的继承并且对象是由类构建出来的。 从ECMAScript 2015,也就是ECMAScript 6开始,JavaScript程序员将能够使用基于类的面向对象的方式。 使用TypeScript,我们允许开发者现在就使用这些特性,并...

2020-02-15 21:33:34 49

转载 cocos creator中的MVC设计模式

在游戏开发的行业中摸爬滚打走了很多路,在这里将我的经验分享给大家。无论是unity或者是cocos,白鹭…在游戏的设计框架中大多数程序员还是遵循MVC来开发的。今天的涉及就是MVC模式,我以creator + typeSprite讲解。 首先为什么用MVC,好处又是什么呢?MVC无人不知,可很多程序员对MVC的概念的理解似乎有误,换言之他们一直在错用MVC,尽管即使如此软件也能被写出来,然而软件...

2020-02-09 21:23:23 391

原创 自定义渲染组件及材质 / 引擎源码 / Dashboard

cocos creator 1.x shader 没有经过包装,可以直接定义shader,替换 sprite 原来的 shader,可以参考之前博客;cocos creator 2.x 引入了材质系统,使用 shader 必须通过材质,这里介绍下如何使用自定义 shader;2.1.2 版本编辑器中开放了实验版材质和shader,如图:---------------------------...

2019-12-19 13:50:49 459

转载 Protobuf 的 proto3 与 proto2 的区别

这是一篇学习笔记。在粗略的看了 Protobuf 的文档中关于 proto2 和 proto3 的说明后,记录下了几点 proto3 区别于 proto2 的地方。总的来说,proto3 比 proto2 支持更多语言但 更简洁。去掉了一些复杂的语法和特性,更强调约定而弱化语法。如果是首次使用 Protobuf ,建议使用 proto3 。在第一行非空白非注释行,必须写:syntax = “...

2019-12-12 22:00:12 120

转载 从字节跳动离职后,拿到探探、趣头条、爱奇艺、小红书、15家公司的 offer

前言博主目前从事Android开发3年,前两年一直在抖音工作。我这篇文章并不是简单的描述一些面试中的题,或者总结一些Android的知识,而是想记录我整个的想法和准备的过程,以及一些心得体会,让大家更加全面的去看待工作、跳槽和生活(从我的角度,当然肯定有不合理的地方,大家借鉴就好)抖音两年在字节跳动的两年时间中见证了抖音从百万日活到2.5亿、团队从10人到100多人的过程,技术上不同时期的选...

2019-12-05 13:45:55 612

转载 es6系列教程 - promise常见用法详解

关于promise我在之前的文章已经应用过好几次,如[js高手之路]Node.js+jade+express+mongodb+mongoose+promise实现todolist,本文就来讲解下promise的常见用法.为什么会有promise,他的作用是什么?promise主要是为了解决js中多个异步回调难以维护和控制的问题.什么是promise?从图中,我们可以看出,Promise是一...

2019-11-17 12:23:22 82

转载 JS中的prototype和__proto__

prototype在JS中,每一个函数都有一个prototype属性,它的作用,简单的理解,就是当使用new关键字实例化一个函数的时候,这个函数prototype里面的对象也会共享到新实例里面。function M1(){ name:'john'}M1.prototype.sex = 'male'M1.age = 18var m2 = new M1()console.log(...

2019-11-17 12:02:34 55

转载 (语法糖)ES6类class声明类的方式 -ES5类声明继承

本文将从以下几方面介绍类与继承类的声明与实例化如何实现继承继承的几种方式类的声明与实例化类的声明一般有两种方式复制代码//类的声明var Animal = function () { this.name = 'Animal';};//ES6中类的声明class Animal2 { constructor () { this.name = 'A...

2019-11-16 10:55:48 88

转载 cocos2dx的渲染机制 / OpenGL渲染流程

1 顶点和片段介绍2 why不同纹理会需要重新渲染 纹理优化---------一、OpenGL基础游戏引擎是对底层绘图接口的包装,Cocos2d-x 也一样,它是对不同平台下 OpenGL 的包装。OpenGL 全称为 Open Graphics Library,是一个开放的、跨平台的高性能图形接口。OpenGL ES 则是 OpenGL 在移动设备上的衍生版本,具备与 OpenGL 一...

2019-11-15 09:24:10 189

原创 借鉴设计

1 工具石墨文档:一个在线的office软件Jenkins: 自动地构建/测试软件Hbuilder:一款支持HTML5的Web开发IDEFiddler:浏览器抓包和调试工具2常量要大写,如:cc.Enum({/GameConst文件JavaScript Promise对象, 是运用在异步编程中的3极速版方便代码维护,修改预设提 新增预设app.UIMgr.addUI(“ge...

2019-11-13 10:24:23 138

转载 python中class的定义及使用

#类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。#对象:它是类的实例化。#方法:类中定义的函数。 #类(Class) 由3个部分构成:'''类的名称:类名类的属性:指对象的特征(一组数据)类的方法:允许对象进行操作的方法 (行为/功能)''' # Python 3.x中取消了经典类,默认都是新式类。# 新式类的语法...

2019-10-29 18:51:45 200

转载 CocosCreator脚本属性在属性面板的显示

声明属性要声明属性,需要在 cc.Class 定义的 properties 字段中,填写属性名字和属性参数。cc.Class({extends: cc.Component,properties: {score: {default: 0,type:cc.Integer,displayName: “分数”,tooltip: “玩家的分数”}}});1234567...

2019-10-12 19:31:19 712 1

原创 git

工作这些年没用过版本管理工具git, 今天记录下。1 github是代码托管网站 git是版本控制(命令)2tortoiseGit是一个开放的git版本控制系统的源客户端,该软件功能和git一样.不同的是:git是命令行操作模式,tortoiseGit界面化操作模式,不用记git相关命令就可以直接操作3 基本命令:切分支(一个项目android ios 不同CCC版本的): c...

2019-10-10 20:03:56 151

转载 Cocos2d-x3.0中几个RenderCommand子类

3.0包含了以下几个RenderCommand的子类:1,CustomCommand:顾名思义,是客户自定义的。它没有过多的数据,只有一个std::function<>类型成员func,这个是在节点draw创建CustomCommand的时候传入的参数,而在真正渲染的时候调用的正是这个函数。比如Label,它的draw函数体为:void Label::draw(){_cust...

2019-09-25 21:48:04 42

转载 WebSocket和SocketIO总结

1、WebSocket是什么?WebScoket是一种让客户端和服务器之间能进行双向实时通信的技术。它是HTML最新标准HTML5的一个协议规范,本质上是个基于TCP的协议,它通过HTTP/HTTPS协议发送一条特殊的请求进行握手后创建了一个TCP连接,此后浏览器/客户端和服务器之间便可以通过此连接来进行双向实时通信。2、为什么要用WebSocket?1)一直以来,HTTP协议是无状态、单向...

2019-09-24 08:06:12 300

转载 cocos creator protobuf实践

首先要说的是,我所使用的creator版本是:creator 版本在写这篇博客之前,我也曾做了很多搜索,也搜出一些有价值的东西,只不过很多东西都已经过时了,,或者说我们现在有更好的方式去实现我们的功能。废话不多说,让我们直接开始吧。1新建一个Hello World项目,命名为CreatorTest。先放一边。2前往protobufjs开源项目库,我们去下一个最新的release版本...

2019-09-22 14:09:08 108

转载 小游戏内存优化与性能优化 / DrawCall

二、性能优化目前小游戏的性能瓶颈大多在JS层面,可以使用Chrome先去profiles性能热点,然后针对性地去做优化。这里给出几点优化建议:1、游戏中频繁更新的文字,推荐使用BMFont,系统字体会比较消耗性能。2、优化Drawcall,尽可能减少Drawcall数量。3、减少Mask组件的使用,该组件会导致游戏中的Drawcall数量变多。4、禁用引擎的culling,禁用方法cc...

2019-09-22 13:06:36 278

转载 JavaScript引用类型——Function

---------------------------------------------------------------------------------------------撸了今年阿里、头条和美团的面试,我有一个重要发现…>>>在ECMAScript中,函数是对象,每个函数都是Function类型的实例,而且与其他引用类型一样具有属性和方法。函数名实际上是一个指...

2019-09-22 11:09:01 109

设计模式之工厂方法

简单工厂方法,只有一个工厂,通过传递不同参数,创建产品。缺点:违背OCP原则为,对修改关闭 B: 工厂方法与抽象工厂不同点:后者侧重于不同的系列,产品组, 前者适用于同一等级结构 -- 符合OCP D: 抽象工厂:TV Fridge Hai_ER Hai_Xi 适用于增加个TCL/等品牌,添加电话不行 -- 修改了工厂基类

2014-08-17

machine状态机

描述状态机的实现; (使用多态的方法) 看看我们平时用的开关,同样一个开关他有2种状态:开和关,当她处于不同的状态的时候她的行为是不一样的,比如当她是开着的时候,你按她一下,她就变成了关闭状态,她是关着的时候按她一下,她就变成了开着的状态。看上去就像是改变了它的类一样,其实我们开发者都知道,我们里面用到了if-else,但是当碰到更多状态时就会造成很多很多if-else,设计和维护就相当的复杂,我们将要学习的状态模式就是允许一个对象在其内部状态改变时改变它的行为,使对象看起来似乎修改了它的类。 ---- - 状态模式

2014-08-17

阳光下的的留言板

发表于 2020-01-02 最后回复 2020-01-02

为什么CSDN的样式突然全变了

发表于 2017-11-16 最后回复 2017-11-16

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