自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (16)
  • 收藏
  • 关注

原创 cocos2d-x-3.0学习笔记之使用listView实现滚屏效果

listView除了展示丰富的列表功能外,还可以用它快速便捷的实现滚屏效果代码如下:for i = 1,5 do local panelNode = gitRainIdlePanel:clone() panelNode:getChildByName("text"):setString("萌友1100"..tostring(i).."抽

2017-04-26 21:24:18 1315

转载 每日一道算法题7—— 查找最大(小)的k个元素

http://blog.csdn.net/v_july_v/article/details/6370650http://blog.csdn.net/insistgogo/article/details/7689297下面,我试图用最清晰易懂,最易令人理解的思维或方式阐述有关寻找最小的k个数这个问题(这几天一直在想,除了计数排序外,这题到底还有没有其它的O(n)的算法? )。希望,有任何问题,欢迎不吝

2017-03-17 19:24:18 1915

转载 每日一道算法题6——判断整数序列是不是二元查找树的后序遍历结果

题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。 例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果: 8 / \ 6 10 / \ / \ 5 7 9 11 因此返回true。 如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。 分析

2017-03-16 19:57:21 436

原创 每日一道算法题5——翻转句子中单词的顺序

题目:输入一个英文句子,翻转句子中单词的顺序,但每个单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字符一样处理,例如输入 i am a student. 则输出student.a am i分析:由于本题需要翻转句子,先颠倒句子中的所有字符。这时不但翻转了句子中单词的顺序,而且单词内字符也被翻转了。然后再颠倒每个单词内的字符。由于单词内的字符被翻转两次,因此顺序仍然跟输入时的

2017-03-15 19:53:15 592

原创 每日一道算法题4——在二元树中找出和为某一值的所有路径

题目:输入一个整数和一棵二元树。从树的根节点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树 则打印出两条路径:10,12和10,5,7参考代码:#include <iostream>#include <vector>using namespace std;enum TREE_DIR{ LEFT_IN_PARRE

2017-03-14 21:10:48 347

原创 每日一道算法题3——得到数组子数组最大和

题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和,求所有子数组和中的最大值,要求时间复杂度为O(n)。 分析:时间复杂度为O(n),表明需至多一次循环遍历该数组,遍历该数组时将遍历的元素求和,如果小于0则丢弃当前元素之前的元素,否则就将这个和值累加到最终结果。如果所有元素都小于0,则需找到所有元素中最大的一个元素返回。 参考代码:#in

2017-03-14 14:51:20 464

原创 每日一道算法题2——定义一个栈,提供一个返回栈里最小元素方法

题目:定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)思路:构建一个辅助栈,每次push一个新元素的时候,同时将最小元素(或最小元素的位置,考虑到栈元素的类型可能是复杂的数据结构,用最小元素的位置将能减少空间消耗)push到赋值栈中;每次pop一个元素出栈的时候,同时pop赋值栈: 参考:#include <deque>#

2017-03-13 20:29:25 344

原创 每日一道算法题1 ——把二元查找树转变成排序的双向链表

1.把二元查找树转变成排序的双向链表题目:输入一颗二元查找树,将该二元查找树转变成一个排序的双向链表 要求不能创建任何,只调整指针的指向 转换成双向链表 4=6=8=10=12=14=16答案:#include <iostream>using namespace std;//定义二叉查找树节点数据结构struct BSTreeNode { int m_nValue; /

2017-03-13 11:37:35 257

原创 游戏引擎觅真谛

前言子安这两天公司下了一个新需求,给游戏添加一个道具系统。既然是道具自然是在游戏中使用的,为了让玩家看到道具使用的效果,因此我们需要精心的组织一系列的action来进行展示。包括一些列的动作和动画等。其中有个小的功能点便是道具要支持玩家能够选择多连发,在这里出现了一个小插曲,需要执行的action有的是需要永久执行的,有的是需要按顺序执行的。因此,子安将Sequence、Spawn与RepeatFo

2016-12-03 17:09:59 686

原创 新象伊始筑高台

“Yeah It’s on. ”目的为什么要搭建个人博客呢? 跳过废话,开始搭建个人博客 特别是在如今拥有CSDN、博客园、简书的这些国内很火的博客平台下,似乎搭建个人 博客显得有些鸡肋。而对子安而言,作为一个程序员,将自由与随心看的无比重要,那些博客平台提供的功能虽然十分强大 ,但是仍然会有着一些缺点。千篇一律的界面,空间、流量的限制等等,最主要的是对于子安而言,有时候写博客并不是为了给别

2016-12-03 10:12:25 345

原创 cocos2d-x-3.0学习笔记之std::function、std::bind

在C++中,可调用体主要包括函数,函数指针,函数引用,可以隐式转换为函数指定的对象,或者实现了opetator()的对象(即C++98中的functor)。C++0x中,新增加了一个std::function对象,std::function对象是对C++中现有的可调用实体的一种类型安全的包裹(我们知道像函数指针这类可调用实体,是类型不安全的)。好了,具体概念不深究,由于自己也是第一次接触这个,仅仅是

2016-10-22 15:45:34 681

原创 C++简单排序算法之快速排序

快速排序是由东尼•霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个

2016-09-20 13:03:44 17547

原创 C++简单排序算法之插入排序

直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列。[1] 例如,已知待排序的一组纪录是: 60,71,49,11,24,3,66 假设在排序过程中,前3个纪录已按关键码值递增的次序重新排列,构成一个有序序列: 49,60,71 将待排序纪录中的第4个纪录(即11)插入上述

2016-09-08 23:50:12 3822

原创 C++简单排序算法之选择排序

选择排序的基本思想是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有简单选择排序、树型选择排序和堆排序。 简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]

2016-09-08 22:52:50 12528

原创 C++简单排序算法之冒泡排序

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。冒泡排序算法的运作如下:(从后往前)比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后

2016-09-08 22:01:13 71770

原创 C++学习之默认构造函数

当我们写一个空类而不添加任何代码时,却可以用它来创建对象,拷贝、赋值等操作。例如:#include<iostream>using namespace std;class Empty{};int main(int argc,char *args[]){ Empty a; //default construct Empty b(a); //copy construct b =

2016-09-04 01:44:41 479

原创 cocos2d-x-3.0学习笔记之贝塞尔曲线

贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。 在cocos中,要实现贝塞尔曲线十分简单,因为引擎已经帮我门封装好了。下面就用贝塞尔曲线来做出精灵在固定范围类来回曲线运动的效果void

2016-08-30 22:26:25 987

原创 cocos2d-x-3.0学习笔记之用户事件机制

因为cocos2d-x引擎具有跨平台的特点,因此能够接收并处理的事件包括触摸事件,键盘事件,鼠标事件,加速度事件以及自定义事件等等。 现在的人机交互中,事件处理机制一般包括三个角色:事件、事件源和事件处理者。事件源是事件发生的场所(例如cocos里面的node),事件接收者是接收事件并处理事件的一段程序。 1.事件 cocos提供的事件类是Event,其子类主要包括触摸事件(EventTouc

2016-08-28 23:09:44 497

原创 cocos2d-x-3.0学习笔记之标签类

游戏场景中的文字标签包括静态文字与动态文字,其中动态文字为美工在制作图片资源时就已经添加上去的文字,因为是图片的一部分,具有很强的随意性,可以是各种各样的文字,但是这种文字也是我们在程序里所不能修改的,动态文字则是我们可以在程序中进行控制的,而cocos2d-x一般是通过标签来实现。cocos2d-x的标签类主要有三种:LabelTTF、LabAtlas和LabelBMFont,在3.0及以上的版本

2016-08-27 00:37:38 540

原创 C++设计模式之单例模式

单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。 GoF对单例模式的定义是:保证一个类、只有一个实例存在,同时提供能对该实例加以访问的全局访问方法。在应用系统开发中,我们常常有以下需求: - 在多个线程之间,比如初始化一次socket资源;比如servlet环境,共享同一个资源或者操作同一个对象 - 在整个程

2016-08-26 17:53:51 442

原创 C++设计模式之简单工厂、工厂模式、抽象工厂

1.简单工厂模式 简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。 模式中包含的角色及其职责 1.工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。 2.抽象(Product)角色 简单工厂模式所创建的所有对象的父类,

2016-08-25 19:58:09 432

原创 cocos2d-x-3.0学习笔记之如何创建开关菜单

开关菜单的菜单项类是MenuItemToggle,它是一种可以进行两种状态切换的的菜单项,其创建函数如下:static MenuItemToggle *createWithCallback( const ccMenuCallback &callback, //菜单操作的回调函数指针 MenuItem *utem, //进行切换的菜单项

2016-08-25 13:43:39 333

原创 cocos2d-x-3.0学习笔记之如何搭建安卓开发环境

当我们在电脑上开发好一款游戏之后,就要准备往手机上移植了,而比较复杂的就是搭建安卓开发环境,在cocos3.0之前搭建安卓开发环境还是比较复杂,但是到了3.0之后开发环境的搭建就变得相对比较容易。 现在就来总结一下cocos安卓开发环境的搭建。 1.解压cocos2d-x 2.安装Python,并添加到环境变量中,Python版本最好是3.0以下 3.准备好SDK,NDK,ANT等工具包

2016-08-24 23:40:18 352

原创 C++设计模式之装饰者模式

英文叫Decorator Pattern,又叫装饰者模式。装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。(百度百科) 装饰模式就是把要添加的附加功能分别放在单独的类中,并让这个类包含它要装饰的对象,当需要执行时,客户端就可以有选择地、按顺序地使用装饰功能包装对象。类与对象图如下所示: 适用情况:需要扩展一个类的功

2016-08-24 21:56:37 262

原创 C++设计模式之观察者模式

观察者 模式是行为模式之一,它的作用是当一个对象的状态发生变化时,能够自动通知其他关联对象,自动刷新对象状态。 观察者模式提供给关联对象一种同步通信的手段,使某个对象与依赖它的其他对象之间保持状态同步。 Subject(被观察者) 被观察的对象。当需要被观察的状态发生变化时,需要通知队列中所有观察者对象。Subject需要维持(添加,删除,通知)一个观察者对象的队列列表。

2016-08-23 19:16:05 235

原创 C++设计模式学习之策略模式

Strategy模式也叫策略模式是行为模式之一,它对一系列的算法加以封装,为所有算法定义一个抽象的算法接口,并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略) 简单来说策略模式就是将算法封装起来并能相互替换,使算法的变化独立于客户端之外。 具体事例://定义角色移动的算法的抽象类class Move{public: virtual void

2016-08-23 14:29:01 228

原创 cocos2d-x-3.0学习笔记之如何设置滚动菜单栏

除了做普通的菜单栏之外,同样也可以利用TableView设计一个滚动的菜单栏,譬如是做关卡选择或者是角色选择的时候,需要一张稍大的图片来展示额外的信息。此时利用滚动菜单就能很好的解决这个问题。 要实现上述功能,我们应当先了解这四个类 TabelView -用于响应触摸事件,判断触摸位置 TableViewCell - 用于表示TableView中单元格的抽象类(注:此处没有纯虚函数,实际为普

2016-08-21 19:22:42 671

原创 cocos2d-x-3.0学习笔记之如何添加菜单按钮

在游戏开发的过程中,一个非常常见的功能是我们应该给游戏设计一些菜单选项,包括游戏开始,游戏结束等等一些的菜单按钮。 cocos为我们提供了一个类MenuItemImage专门用来实现这些功能,MenuItemImage类的构造函数如下: static MenuItemImage* create(const std::string& normalImage, const std::string&

2016-08-21 17:05:24 584

原创 cocos2d-x-3.0学习笔记之如何实现地图的卷动

在使用cocos2d-x编程时,常常会用到的一个功能便是如何实现地图跟随精灵(角色)的移动而卷动,特别是对于跑酷类游戏来说,这样就会让精灵一直处于屏幕的可见范围内。在这里介绍两种最基本的方法 1.第一种方法 第一种方法实现起来比较简单,主要的思路是因为精灵是处于地图之上的,因此,我们移动精灵是相对于地图的,移动精灵之后得到的坐标也是相对于父节点的坐标,将其转为世界坐标体系判断其X坐标有没有超出屏

2016-08-21 14:36:36 720

原创 C++学习之空类的大小

最近在学习C++时突发奇想,一个空类的大小是多少呢? 即#include<iostream>using namespace std;class X{};class Y : public virtual X{};class Z : public virtual X{};class A : public Y,public Z{};int main(int argc,char *args[

2016-08-19 14:08:24 354

原创 cocos2d-x-3.0学习笔记之瓦片地图的使用

cocos3.0对cocos2.00做了很多的改变与优化,如果直接将cocos2.0里的游戏代码移植到cocos3.0中会报很多的错误。例如在获取瓦片地图的属性时更会如此。下面做个例子,首先我们将制作好的瓦片地图加载到程序中auto m_map = TMXTiledMap::create("MarioMap.tmx");this->addChild(m_map);加载好瓦片地图之后,我们如何得到瓦

2016-08-07 12:47:47 394

原创 mfc学习笔记之如何修改mfc消息机制处理顺序

学习mfc时知道了mfc的消息处理机制是有着顺序的,首先是视图类CView类先处理,如果视图类不处理消息则会由文档类CDocument处理,如果文档类不处理消息则会由框架类CFrameWnd处理,加入框架类不处理则会由应用程序类CWinApp类处理,但是这个顺序是怎么来的呢,跟踪MFC代码调试发现是跟MFC库代码顺序有关,相关MFC函数代码如下BOOL CFrameWnd::OnCmdMsg(UIN

2016-07-18 23:26:23 697

原创 MFC学习之菜单栏创建

在开始学习MFC创建菜单时,根据书上的例子先在资源文件里建立好菜单,然后在代码中将菜单加载出来,其代码如下 `int CMyFrameWnd::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1;// TOD

2016-07-11 11:41:28 737

原创 mfc学习之主框架窗口创建过程

在上一篇追踪了mfc程序流程之后回到了自己所写的初始化函数BOOL CMyWinApp::InitInstance(){ CMyFrameWnd * pFrame = new CMyFrameWnd(); pFrame->Create(NULL,"FirstMFC"); m_pMainWnd = pFrame; pFrame->ShowWindow(SW_SHOW); pFrame

2016-07-06 21:59:07 5586

原创 mfc学习之分析mfc程序执行过程

在前几天学习自己动手创建了一个mfc程序之后,生出了一个疑问,作为一个新手,在学习c++标准语法的时候,基本都是控制台程序,而且众所周知程序都会有一个入口点也就是main函数,而在mfc程序中,只是定义了一个全局对象theApp,和重写了一个初始化函数,没有看到任何的主函数,然后资料上说mfc将入口函数也给封装起来了,因此今天准备跟踪一下mfc程序的执行流程,以FirstMFC为例因为全局变量

2016-07-06 19:43:31 2533

原创 mfc学习笔记之如何自己动手实现最简单的mfc程序

在刚开始学完c++基本语法之后,发现要用c++写一个窗口应用程序必须与操作系统结合起来,于是自然而然的选择了从mfc入手,但是通过新建的mfc程序发现太过于臃肿,不知道如何下手,因此从网上查阅资料发现可以自己动手使用mfc库实现一个最简单的mfc程序。  1. 由于mfc只是对win32API进行了大量的封装,因此可以通过修改win32项目来创建mfc工程2. 工程名起名为Firs

2016-07-06 18:43:21 5416

游戏编程中的人工智能技术PDF(包含源码).rar

游戏开发中的人工智能,游戏寻路,ai,智能算法,集群等

2019-07-22

unity5.x从入门到精通 高清版

高清带书签版,1.2g,链接失效请私信,比4.x的更符合现在学习需求

2018-01-03

cocos2d-x实战_js卷

cocos2d-x实战_js卷

2017-03-04

cocos2d-x实战_lua卷

cocos2d-x实战_lua卷

2017-01-07

泛型编程与STL.pdf

泛型编程与STL.pdf

2016-09-05

深入理解C++11.pdf

深入理解C++11

2016-09-03

Effective C++中文第三版

Effective C++中文第三版

2016-09-03

Cocos2d-x实战 C++卷.part4

Cocos2d-x实战 C++卷.part4

2016-08-30

Cocos2d-x实战 C++卷.part3

Cocos2d-x实战 C++卷.part3

2016-08-30

Cocos2d-x实战 C++卷.part2

Cocos2d-x实战 C++卷.part2

2016-08-30

Cocos2d-x实战 C++卷

Cocos2d-x实战 C++卷

2016-08-30

C++对象模型 PDF中文清晰版

C++对象模型 PDF中文清晰版,站在编译器的角度为我们详细介绍了一个对象从创建到消失完整的历程

2016-08-29

Cocos2d-x 3.x游戏开发之旅_PDF电子书下载 带书签目录 高清完整版.part2

Cocos2d-x 3.x游戏开发之旅_PDF电子书下载 带书签目录 高清完整版

2016-08-27

Cocos2d-x 3.x游戏开发之旅_PDF电子书下载 带书签目录 高清完整版.part1

Cocos2d-x 3.x游戏开发之旅_PDF电子书下载 带书签目录

2016-08-27

空空如也

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

TA关注的人

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