自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

原创 shader之渲染流水线

一、渲染流程 1.应用阶段 该阶段由CPU负责实现。开发者有三个主要任务:准备场景数据、 粗粒度剔除(将不可见的物体剔除出去)、设置每个模型的渲染状态(即渲染图元) 2.几何阶段 这阶段在GPU上进行,负责与每个渲染图元打交道,进行逐顶点,逐多边形的操作。该阶段重要任务是将顶点坐标变换到屏幕空间去,再交给光栅器进行处理。该阶段会输出屏幕空间的二维顶点坐标、每...

2018-07-09 11:18:27 565

原创 cocos中的触摸事件 、lambda表达式

触摸事件 在cocos3.x中,所有的事件统一由EventDispatcher来分配,如触摸事件,键盘事件等。下面介绍触摸事件中的单点触摸。建立单点触摸的响应分为以下几个步骤: 1.创建事件监听器的对象 auto listener=EventListenerTouchOneByOne::create();2.设置事件监听器具体要监听的事件,每个事件监听器中有若干个事件回调

2017-03-25 15:52:30 470

原创 dynamic_cast 操作符

dynamic_cast 将基类类型的指针或引用转换为同一继承层次中其他类型的引用或指针,与其他的强制类型转换不同的是,dynamic_cast涉及运行时类型检查,如果绑定到引用或指针的对象不是目标类型的对象,则dynamic_cast失败,如果转换指针类型的dynamic_cast失败,则dynamic_cast的值为0, 如果转换引用类型的dynamic_cast失败,则抛出一个bad_cast

2017-03-24 10:41:06 481

原创 关于cocos2d中物理引擎碰撞掩码的设置

当物理引擎检测到两个Body发送的碰撞信息后,会调用相应的时间方法来通知系统,比如两个Body已经发生碰撞,两个Body已经分离。 接收碰撞事件的方法为onContactBegin; 接收分离事件的方法为onContactSeperate 一、碰撞掩码分为以下三种: 1.CategoryBitmask:该掩码会与另一个物体的另外两个掩码ContactTestBitmask、Colli

2017-03-19 11:14:33 1964 1

原创 C++数据结构小记

1、类模板的声明 template class genclass{ genType storage[50]; ……………. } 在此之后可决定初始化genType genClass intObject; genClass floatObject;进一步,将数组大小推迟到对象定义阶段 templat

2017-02-23 11:29:05 340

原创 C语言之文本输入输出一些记点

一、sizeof与strlen 如char a[]=”abcdf” 则sizeof(a)返回的是6,因为除了5个字节的字符以外,还有结尾的‘\0’ 则strlen(a)返回的是5,返回的总的字符长度二、scanf与scanf_s 如char a[20]; 则scanf(“%4s”,a)与scanf_s(“%s”,a,4)的效果相同 使

2016-11-30 22:51:00 359 1

转载 概念区别

一、new和malloc的区别 1.1 new 返回指定类型的指针,并且可以自动计算所需要大小。 比如:    1) int *p;    p = new int; //返回类型为int* 类型(整数型指针),分配大小为 sizeof(int);    或:    int* parr;    parr = new int [100]; //返回类型为 int* 类型(整数型指针),分配

2016-10-30 19:31:01 260

原创 关于链表的基本操作

#include<iostream>using namespace std;typedef struct list{ int data; struct list* next;}List;一、链表的创建List* create(){ List* head = new List(); List* out = head; int cycle = 1;

2016-10-20 21:31:02 231

转载 互联网协议简介

一、概述 1.1 五层模型 自底向上依次为 物理层(实体层)、链接层(链路层)、网络层、传输层、应用层。 越下面的层越靠近硬件,越上面的越靠近用户。1.2 层与协议 每一层为了完成一种功能,需要大家都遵守共同的规则,这个规则就叫“协议”互联网每一层,都定义很多协议。这些协议总称为“互联网协议”。下面介绍每一层的功能和主要协议二、实体层 电脑要组网,需要先把电脑连接起来,可用光缆、电缆、双绞线

2016-10-20 11:24:37 373

原创 排序算法

一、二叉树的叶子节点、度 叶子节点表示而二叉树最末端的节点,不再有新的子节点延伸,度为1。 度为2的节点表示可延伸两个子节点,度为1就是一个,0就是叶子节点。 度为2的节点数a与度为0的节点数b存在关系式 a=b-1

2016-10-16 11:35:11 294

原创 关于链表倒序

链表倒序基本思路算法: pNext=p->next;p->next=pFormer;pFormer=p;p=pNext;如初始链表顺序位1->2->3->4 倒序以后的顺序为1<-2<-3<-4 主体程序:LinkNode function(LinkNode* LN){ LinkNode* p=LN; //p被赋予头结点的位置 LinkNode* pFormer=N

2016-10-06 11:22:26 408

原创 笔试题小记3

编程题1 兔子一次只能爬1步或2步,问有多少种方法爬满30步int func(int n){ if (1 == n) return 1; else if (2 == n) return 2; return func(n - 1) + func(n - 2);}int main(){ printf("%d\n", func(30)

2016-09-27 21:18:42 243

原创 笔试题小记2

1.同一进程下的线程可以共享的是 A stack B data section C register set D thread ID选B 线程共享的内容包括: 进程代码段 进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、 进程打开的文件描述符、 信号的处理器、 进程的当前目录 进程用户ID与进程组ID 线程独有的内容包括: 线程ID 寄存器组的值

2016-09-25 21:21:01 297

原创 编程题小记

vector的二维数组容器 首先是赋值方法vector<int, int> vec; int a[1][1]; a[0][0] = 1; vec.push_back(a[0][0]);或者vector<vector<int>> vec; vec = vector<vector<int>>(1, vector<int>(0)); for (auto i =

2016-09-23 15:11:28 216

原创 笔试题小记1

class与struct的默认访问权限不一样: class默认private struct默认publicprotected访问权限 在类中被protected修饰的函数或数据成员,只能被该类或其子类的以及其友元函数访问。 特别要注意的是:访问权限为protected的类成员不能被该类的实例对象或其子类的实例对象访问在没有继承的情况下,protected跟private相同。在派生类的时候才

2016-09-16 17:52:18 310

转载 简单说说Socket

要理解Socket首先要理解TCP/IP协议族,TCP/IP即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何在它们之间传输的标准, 从字面意思来看TCP/IP是TCP和IP协议的合称,但实际上TCP/IP协议是指因特网整个TCP/IP协议族。不同于ISO模型的七个分层,TCP/IP协议参考模型把所有的TCP/IP系列协议归类到四个抽象层中应用层:TFTP,HTTP,SNMP,

2016-09-11 10:53:31 397

原创 关于c++面试问题的一些总结

前天去边锋参加了cocos2d开发工程师的笔试和面试,发现自己的基础还是很薄弱的,下面是自己回忆的笔试和面试问的问题1.c++的三个基本特性 封装、多态、继承2.构造函数可不可以是虚函数 构造函数不能是虚函数,虚函数的作用在于通过父类的指针或者引用来调用它的时候能够变成调用子类的那个成员函数。而构造函数是在创建对象时自动调用的,不可能通过父类的指针或者引用去调用,因此也就规定构造函数

2016-09-10 21:32:06 384

原创 C++ 关于在一个类中定义另一个类的指针与对象

1.在一个类中定义另一个类的对象,则程序运行时该类的对象自动调用其构造函数初始化,然后其主类才调用构造函数初始化2.在一个类中定义另一个类的指针,需要在主类里面初始化指针,如 A* p=new A(),之后该指针可以调用其类的成员变量,仅限公有变量,若想访问私有变量,需要将指针设置成友元。

2016-09-04 21:08:37 11764

原创 cocos 关于多个触摸事件 依次点击时出现回调函数未执行的情况

场景: 1.layer1添加按钮并设置touch的回调函数,并设置setSwallowTouches(true),使触摸事件不下传。 2.layer2添加按钮并设置menu的回调函数 3.将layer1与layer2依次添加到主场景helloworld里面,如果layer1的绘制顺序在layer2后面,则由于吞噬事件的执行导致layer2的回调函数不执行,反之则可以执行。4.如果两个layer

2016-08-26 18:28:19 663

原创 关于cocos2d中的世界坐标与局部坐标

一、 主要的接口函数为以下四个: convertToNodeSpace(); //转换成局部坐标 convertToNodeSpaceAR(); convertToWorldSpace(); //转换成世界坐标 convertToWorldSpaceAR();注:通常做游戏是放置精灵所用的坐标是世界坐标,即以场景左下角为原点的坐标系 二、

2016-08-23 15:27:30 1519

转载 关于关联容器set的一些应用总结

推荐一篇比较好的博文 http://www.cnblogs.com/BeyondAnyTime/archive/2012/08/13/2636375.htmlset的主要好处是: 1)用来存储同一数据类型的数据类型,并且能从一个数据集合中取出数据,在set中每个元素的值都唯一,而且系统能根据元素的值自动进行排序。 2)count() 用来查找set中某个某个键值出现的次数。这个函数在set并不

2016-08-16 14:44:55 376

原创 关于cin

在网上刷了一些笔试题后发现,对cin的要使用有时候总是会搞混,下面自己做个记录: 1.cin输入的数据类型主要是int,char,string类型,其中使用while(cin>>data)时,当输入的data为空格符时,是不被存入流缓冲的;当键入换行符时,意味着一次输入的结束,程序开始执行while里面的循环。 如果要跳出while的循环,有两种方法,一种是输入类型不同的数据导致输入出错

2016-08-16 14:41:21 363

原创 关于getchar()函数的一些看法

一、什么是getchar() getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用

2016-08-15 11:27:47 771

原创 网易游戏开发软件笔试题1

网易游戏开发软件笔试题1有一天,他在游戏中获得了一串数字,直觉告诉他这不是一串普通的数字串,或许可以破解一些关于网易的秘密。破解的第一步,他很想知道,在这串数字中,最多可以挑出多少个’9706’串。挑选的规则为:(1)挑出的数字’9’,’7’,’0’,’6’在原串中可以不连续,但是数字的先后顺序不能改变(2)使用过的数字不能被再次使用如’123901370997606’可以最多挑出2个’9706’,

2016-08-11 14:55:55 639

原创 cocos2d 关于retain、release以及autorelease

cocos2d中的内存管理采用引用计数的机制,当创建的节点使用retain则引用计数+1,使用release则引用计数-1,当节点的引用计数为0时,节点被自动释放,这个作用机制的前提是该节点对象调用了autorelease函数。 目前的cocos2d大部分类都有create函数,而create函数里面已经包含了对节点使用autorelease的部分。而像addChild的函数内部是包含调用re

2016-08-02 22:55:59 575

原创 cocos2dx中的观察者模式

**一、什么是观察者模式 当我们对感兴趣的消息进行订阅,一旦有新的动态,就可以收到这些消息。更重要的是,我们不需要时刻关注,消息会自动到达,这就是观察者模式。 在游戏中,观察者模式有很大的作用。比如游戏中的战斗,角色的死亡信息可以被订阅,当角色死亡时,订阅该消息的主体就能做出一些处理(比如怪物停止攻击,弹出死亡界面等等)**二、cocos中提供的观察者模式工具类1.addObserver(订

2016-08-02 19:56:30 1436

原创 cocos2dX 关于GlobalZorder,LocalZorder,OrderOfArrival之间的关系

精灵的绘制顺序是按照其添加的顺序进行的。 GlobalZorder,LocalZorder,OrderOfArrival的默认值都是0。 1.LocalZorder localZorder这个属性是针对某个节点的子节点的绘制顺序。 比如,有两个精灵都是Helloworld这个Layer的子节点,则设置这两个精灵的localZorder,可以改变他们在HelloWo

2016-08-01 20:39:42 1819

转载 lambda表达式的使用

有些时候,我们只需要在一两个地方使用到一些简单的操作,而又不想去定义这个函数名,那么此时便可以Lambda表达式来实现我们的功能。一个完整的lambda表达式的表达形式如下:[capture list](parameter list)->return type (function body)[捕获列表] (参数列表) ->返回类型 (函数体) Lambda表达式的参数列表和返回类型是和可以忽略的

2016-05-02 20:47:34 496

原创 cocos环境下AndroidStudio安装以及编译APK文件

一、前期准备 1、JDK 2、AndroidStudio安装包(可同时安装AndroidStudio SDK以及AndroidStudio) 3、ant 4、androidNDK二、安装步骤 1、安装JDK(官网可下载),配置环境变量(百度) 2、下载ant与androidNDK,解压即可,分别去官网下载即可,同时配置环境变量(百度) 3、最后安装AndroidStudio,安装时会问

2016-04-22 16:24:14 1888

转载 C++类的对象和类的指针的区别

对于一个类Moudle,定义了一个对象 和一个指针。 类的指针:他是一个内存地址值,他指向内存中存放的类对象(包括一些成员变量所赋的值). 对象,他是利用类的构造函数在内存中分配一块内存(包括一些成员变量所赋的值). 在应用时: 1.引用成员: 对象用” . “操作符; 指针用” -> “操作符. 2.生命期:

2016-04-22 15:28:08 468

原创 c++小记

1.直接初始化与拷贝初始化的区别 直接初始化:直接初始化要求编译器使用普通的函数匹配来选择与我们提供的参数最匹配的构造函数。c++中的explicit用来定义显示的初始化,即直接初始化。 拷贝初始化:要求编译器将右侧的对象拷贝到正在创建的左侧对象中,必要时还可进行类型转换。拷贝初始化通常使用拷贝构造函数来实现。

2016-04-05 15:31:39 223

原创 cocos2d使用小结

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2016-03-22 16:48:01 396

空空如也

空空如也

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

TA关注的人

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