自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小小英雄的博客

小小的天,大大的梦想

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

原创 js垃圾回收机制详解

大家好,我是思航。最近我们游戏在进行内存优化,所有大家网上找了很多教程,来定位和查找内存泄漏问题。今天呢,我打算换个角度来聊聊这个问题。当计算机动态内存不再需要时,应该释放。如果没有释放,就会产生内存泄漏。即:当我们认为不需要了,但是js却没有回收时,就产生了内存泄漏 我们认为不需要了 ==> 对象清空、关闭界面等操作js 认为内存不需要了 ==> 需要了解 js的 垃圾回收机制我们通过下面一个例子来讲一下引用计数的机制。通过上面图解,我们可以看到,当函数 func执行后,对象{

2022-07-11 20:47:14 1933 1

原创 cocos2d-x-html5之工程结构分析

文章前言一、工程结构1.1 web/AUTHORS.txt1.2 web/Base64Images.js1.3 web/bower.json1.4 web/CCBoot.js1.5 web/CCDebugger.js1.6 web/CHANGELOG.txt1.7 web/cocos1.8 web/extensions1.9 web/external1.10 web/jsb_apis.js1.11 web/licenses1.12 web/moduleConfig.json1.13 web/README.

2021-10-02 14:58:19 444 1

原创 3D数学基础:图形与游戏开发 【第二章 笛卡尔坐标系统】

目录一、前言二、1D数学三、2D 笛卡尔数学四、从2D到3D五、思考题六、总结一、前言大家好,我是思航。今天我们来学习本书的第二章。计算机图形学第一准则:近似原则如果它看上去是对的它就是对的。二、1D数学计数(两千多年前的数羊)和度量的数学。基本概念:三、2D 笛卡尔数学原点+两条轴(两条过原点且互相垂直的直线)x轴、y轴定位一个点,需要两个数 x和y。x表示该点到y轴的有符号距离y表示该点到x轴的有符号距离四、从2D到3D相比2D,增加了第三个轴,z轴。定位一个点,需要3个数:

2021-09-21 17:59:13 857

原创 3D数学基础:图形与游戏开发 【第一章 简介】

简介一、前言二、 什么是3D数学三、为什么选择本书四、概览五、总结一、前言大家好,我是思航。最近在阅读 【3D数学基础:图形与游戏开发 】这本书,打算把自己学习感悟记录下来,已便以后查阅。二、 什么是3D数学3D数学是一门和计算几何相关的学科。注:3D数学是一门学科,是什么样的学科呢,是和 计算几何相关的学科。那计算几何又是什么呢?计算几何是 研究用 数值方法解决几何问题的学科。3D数学与计算几何 这两门学科广泛 应用于 那些 使用计算机模拟3D世界的领域 ,如图形学、游戏、仿真、机器人技

2021-09-17 22:54:20 596

原创 coco2d-x-html5之渲染流程

文章目录一、前言二、关键类介绍1、CCDirector.js (导演类)2、RendererWebGL.js (调度)3、CCNode.js4、CCNodeWebGLRenderCmd.js一、前言嗨,大家好,我是思航。今天打算讲一下 cocos2d-x-html的渲染流程。二、关键类介绍1、CCDirector.js (导演类)2、RendererWebGL.js (调度)3、CCNode.js4、CCNodeWebGLRenderCmd.js...

2021-08-29 17:14:17 271

原创 coco2d-x-html5之动作系统

文章目录一、前言二、代码和效果1、代码2、效果三、分析1、执行 CCDirector.js的drawScene方法2、执行CCScheduler.js的 update函数2.1 CCActionManager如入添加到CCScheduler的_updatesNegList3、执行CCActionManager.js 的update函数3.1 动作如何添加到CCActionManager.js 的_arrayTargets4、执行 cc.MoveBy 的 step函数四、自定义动作类4.1 自定义类代码4.

2021-08-13 00:50:46 258 2

原创 “Node still marked as running on node destruction! Was base class onExit() called in derived class o

今天测试功能的时候,遇到删除节点的时候,出现"Node still marked as running on node destruction! Was base class onExit() called in derived class onExit() implementations?"断言。这边记录一下问题的查找过程以及解决方案。首先出现这个报错的时候,我们先查找一下源码,发现这个断言是在CCNode.cpp 的析构函数里面抛出来的。从代码可以看出,调用析构造函数的时候,_running为True

2021-04-13 23:16:03 525

原创 cocos2dx-js 快速查找未被使用的贴图

实现思路:1、查找当前内存中的所有贴图:cc.textureCache._textures2、当前正在使用的贴图:通过当前场景,遍历所有的子节点,查找引用的贴图3、遍历所有的贴图,看下是否正在使用// 获取指定节点的下的所有子节点(包含自己)var getAllChildren = function(curr) { var stack = [curr]; var index = 0 while (curr) { // Walk through childre

2021-01-29 20:57:42 213

原创 coco2d-x-html5之Director解析2

通过上一讲,我们了解到是通过帧率的值,来控制回调的频率,同时我们看到每次回调都执行了director.mainLoop(),这一讲我们就分析一下CCDirector.js这个文件.

2020-06-07 23:08:50 170

原创 coco2d-x-html5之Director解析

上一讲我们讲了为什么调用了cc.game.run后,会执行cc.game.onStart函数。这一讲,我们通过分析一下 CCDirector.js的代码,来了解一下游戏是怎么渲染的。

2020-06-07 21:43:30 238

原创 cocos2d-x-html5之游戏启动2

上一篇讲了调用了cc.game.run后,会执行cc.game.onStart函数,然后项目组在onStart函数中实现了自己的逻辑。 这一篇就具体解析一下是怎么执行到cc.game.onStart函数。

2020-05-24 16:56:05 482

原创 cocos2d-x-html5之游戏启动

接触cocos2dx有5年多来,以后可能要切换到creator了。所以打算重新学习一下cocos2dx源码,并记录一下。今天我们来讲一下web版本是怎么启动,首先看下模版工程的文件结构,其中index.html为入口。接下来我们看下index.html里面的源码<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>Cocos2d-html5 Hello Wo

2020-05-24 10:35:30 1336

原创 利用控制台(console)来格式化json文件内容

在工作中,我们经常拿到json文件都是格式后的,变成来一行,导致我们很难查看原来的信息。当然网上有很多工具支持json格式化成原来的样子。今天我们用更简单的方法,控制台+copy方式来实现json文件还原。具体方式如下:1、打开json文件,并复制内容2、打开网页控制台,输入 a =,后面黏贴上之前复制的内容3、控制台输入 copy(a)4、找个文档,黏贴...

2020-02-17 23:08:57 3065

原创 js中的 与或运算顺序 (包含例子)

今天在网上查了js的&&和||的相关文章,感觉现在很多人看文章都缺少验证的思想。接下来我来讲一下我对&&和||的了解,已经贴上对应的demo。首先确认一点,&&与||的执行优先级是一样的,不论有多少的混用都是从左到右执行1、JS中的&&符号:短路 与,第一个为false,整体为false接下来来个demo11 || 02、...

2019-11-17 22:13:41 1778 2

原创 如果提高学习效率

我们在看一篇博客或者一本书的时候,经常会发现自己看了一段时候后就开始浮光掠影的翻看,等看完后,却不记得自己看了什么,导致学习效率低下。出现这种情况一般有两种,一是文章确实表达不清晰,二是我们的学习习惯不对,接下来谈谈我们如何养成好的学习习惯,提高学习效率。1. 慢一点,你理解的越多,需要硬记的就越少不要光只是看看而已,停下来,好好想想。有时候看懂还不够,还要想一下为什么?(之前学习cocos2...

2019-10-13 23:10:45 177

原创 《动态规划_钢条切割》系列 第二讲:朴素递归算法

整理中,敬请期待。

2019-08-04 20:08:48 282

原创 《动态规划_钢条切割》系列 第一讲:什么是钢条切割

最近在看算法导论,打算把一些心得记录下来,一是为了当作笔记自己看,二是希望给其他人带了些帮助。动态规划_钢条切割,这个系列预计分成三讲来说,分别是:什么是钢条切割朴素递归算法求最优方案动态规划算法求最优方案什么是钢条切割?某公司购买长钢条,将其切割为短钢条出售,切割工序本身没有成本支出,在确定每种长度的售出价格时,公司管理层希望知道最佳切割方案。其中公司出售一段长度为i寸的钢条的...

2019-08-04 20:02:51 252

原创 使用阿里云搭建属于自己的git服务器(包含图解)

使用阿里云搭建属于自己的git服务器(包含图解)平时我们上班的时候都是用git进行版本管理。在公司的时候,往往公司就是给你给仓库地址和账号密码来进行登陆来使用git。那如果我们自己业余写代码要托管,又不能公司的,这时候我们可以自己搭一个git服务器。今天我讲一下如果阿里云上大家属于自己的git服务器。我平时写博客喜欢带上图解,因为我自己不希望搭建开发环境,经常查看别人的blog都是简单写,对于...

2019-08-03 17:12:59 3445

原创 cocos2dx-js CCBoot.js异步池cc.AsyncPool浅析

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先通过一个问题的出现以及解决,来介绍cc.AsyncPool的实现。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;假设现在有个需求,就是一个页面里面要显示很多图片,而且这些图片是需要下载的。如果我们的实现方法是显示这个页面的时候,一次性请求并创建这些图片,这样做可能会出现当

2018-12-17 00:31:01 990

原创 从例子中学习闭包和范式for

又翻起了programming in lua这本书了,而且又看到 感谢贡献之人这段代码,今天就对这段代码做下分析。代码如下:-- file: 'thanks.lua'-- desc: to print the list of the contributing guysfunction list_iter (t) local i = 0 local n = table.getn(t)

2017-03-10 16:18:42 451

原创 2_如何学习lua这门语言

通过学习几门语言以来,我觉得要快速入门一种编程语言,可以从以下几个方面开始:1、首先要先布好运行环境,运行第一个程序(这一部分我们在上一节已经讲过如何运行我们的一个lua程序,并成功输出了"hello world")2、归纳学习每门语言的共同点今天呢,我们就开始讲一下,学习如何,可以先从哪些知识点开始。1、变量(什么是变量)2、变量类型(变量类型有哪些)3、运算符(有哪些运

2016-08-02 23:26:02 582 3

原创 1_lua的第一个程序--hello world

刚学习一门语言的时候,相信很多人都想要运行出传说中的 hello world。在这里,我们也一样,先运行出属于你的第一个lua的程序。    因为lua是脚本语言,它并不能直接运行,而是依赖于其他程序中。我们可以从网上下载lua的编译器,或者从我的网盘下载:http://pan.baidu.com/s/1slaPlX71、下载后,得到一个压缩包,如下图:2、解压出来,打开文件,

2016-08-02 22:27:33 2862

原创 开始lua学习记录旅程

看着csdn上完整系列的教程,总是羡慕不已。想想从毕业到现在两年多,学习了lua、python、js等语言,每次都没有静下心来深入一门语言编程。今天开始,重新学习lua编程,并记录学习过程和感悟,希望假以时日可以出相关书籍,希望各看官多多支持

2016-08-02 21:08:09 408 1

原创 coco2dx-js 实现 层拦截 点击响应事件

今天要实现一个功能,要用到层拦截点击事件的功能,过程中走了一些弯路,下面记录一下所学的。 实现功能:   在已有的界面A中,点击A的一个按钮后,弹出界面B。这时点击界面B的时候,界面A不接收点击响应。关闭B界面后,A界面又可以点击,接收的点击响应。   简单说就是,拦截层B出现的时候界面A不可点击,消失的时候界面A可点击。预备知识(可以先不看,直接跳到做法,然后在返回来看): 界面B要拦截点

2016-01-22 23:27:31 1322

原创 浅谈js的对象

JavaScript中所有变量都可以当作对象使用,除了两个例外null和undefined。今天这里说的对象就特指object类型,也就是其他语言里面的字典dict,接下来讲一下js中对象的定义和使用。 对象赋值: 1)定义并初始化a = { x : 1 } <--> a = { "x" : 1 } <--> a = {} a["x"] = 1 <--> a = {} a.x =

2016-01-14 18:01:01 403

原创 linux下svn服务器搭建及使用(包含图解)

linux下svn服务器搭建及使用(包含图解)  今天自己动手在linux搭建了svn服务器,把具体过程和一些自己的见解分享给大家,希望对大家有所帮助。   客户端svn(大家见到的小乌龟)下载地址为:http://tortoisesvn.net/downloads.html。这里客户端的安装就不作详解了,接下来直接进入服务端的安装~1)安装svn服务器 # yum install subve

2016-01-11 20:51:46 6525 1

原创 cocos2dx之UserDefault: 数据存储及加密 (上)

首先说明一下楼主使用的cocos2dx的版本是3.4。 大家知道有时候游戏需要在本地存储一些数据,比如单机里面的最高分之类的。我们可以根据要存储的数据类型来调用一下接口:bool类型: cc.UserDefault:getInstance():setBoolForKey(key, value) cc.UserDefault:getInstance():getBoolForKey(k

2015-12-18 08:59:54 6188 2

空空如也

空空如也

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

TA关注的人

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