自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (3)
  • 收藏
  • 关注

原创 cocos2dx Lua项目中添加Sqlite

1. 使用版本cocos2dx2.2.2 + VS2012,创建lua项目后,发现没有Sqlite,将添加的记录写下来: 首先下载sqlite3和lsqlite3,直接放到工程中的classes下。创建lsqlite3.h#ifndef _LUA_SQLITE3_H_#define _LUA_SQLITE3_H_#include "lauxlib.h"LUALIB_API in

2014-03-21 09:26:33 1840 2

原创 实现3个按钮的回调函数

1.首先了解下触摸分发机制(CCTouchDispatcher):查找顺序:applicationDidFinishLaunching——>    pDirector->setOpenGLView(pEGLView)——> m_pTouchDispatcher->setDispatchEvents(true)——>CCTouchDispatcher可以看到项目中,将多点触摸和单点触

2014-02-18 08:21:48 1886

原创 开始界面的编写

本系列博客使用的图片仅仅是学习使用现在开始代码:1. 创建一个项目,使用的cocos2dx 2.2版本。首先在main中更改显示窗口为竖屏的比例:eglView->setFrameSize(320, 640);2. 在框架入口函数:applicationDidFinishLaunching中 添加代码, 配置分辨率, 使游戏能够使用多种分辨率。项目使用的背景图片是7

2014-02-17 22:35:47 595

原创 排序算法一

3个简单的排序算法,不多解释了,直接上代码:#include #include void Display(int a[], int n){ for (int i = 0; i< n; ++i) { printf("%d, ", a[i]); } printf("\n");}void Exchange(int a[], int i, int j){ int tmp

2014-02-11 22:51:50 500

原创 单链表的操作

1.  定义单链表的接口函数#ifndef _LINKLIST_H_#define _LINKLIST_H_typedef int ElemType;typedef struct Node{ ElemType data; struct Node * next;}Node;Node*InitNode();bool AddNode(Node *head,ElemType d

2014-02-10 11:58:10 504

原创 lua中字符匹配(适用于数据解析)

string.gmatch的使用:直接上代码:

2014-02-09 22:50:30 565

原创 装饰模式

参考书籍 : 大话设计模式遇到设计模式,首先想到的是将变化的部分和不变化的部分 分开!ok!今天要做的是描述小明出现在各种活动场景中。 那么小明是不是需要更换不同的服饰了,比如婚礼,比如考试,比如游泳等等。从上面的分析可以看到在各种活动场景中,小明变化的只是服饰,小明本人是没有任何变化的。而且服饰的变化也是有顺序的,比如先穿内衣,才能再穿外衣,当然除非是超人,可以内裤外穿。

2014-02-09 22:14:16 427

原创 简单工厂模式

注明: 设计模式的博文参考书籍是大话设计模式记得刚开始看这本书的时候,没有面向对象的思维,还是看的迷糊。现在从头再学习一遍觉得还是从生活中的例子出发,我们去肯德基的时候,会直接对服务员说,我要套餐1,或者什么什么。然后服务员会让厨房赶紧做出来。套餐具体是怎么做好的,我们是不用关心的。 有时候,我们不喜欢吃套餐,要根据自己的喜好来单个点。也会很快就得到想要的食品。 从上面的生活例子中,消

2014-02-08 19:27:43 518

原创 c++中的动态识别

1. 利用多态,返回当前对象的ID(代码维护不容易)2. 利用 dynamic_cast 在基类和子类之间转换,若转换失败返回空指针。(必须是多态,才能使用dynamic_cast  )3. 利用关键字typeid,头文件包含 typeinfo, 这个和具体的编译器相关在实际项目中,可以根据实际的需求,进行选择

2014-02-07 22:05:10 599

原创 并发程序中的 进程 监控

本例目标是:设计一个进程并发的监控程序,一旦有子进程死亡,就重启该子进程。使用到的 SIGTERM : 程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和 处理. 通常用来要求程序自己正常退出. shell命令kill缺省产生这 个信号. 代码:打开另一个终端,查看进程:从运行结果可以看到, 只要有任何的子进程被kill

2014-02-07 18:23:16 456

原创 fork创建子进程

fork函数可以用来创建子进程。代码:运行结果: 注意在子进程中,可以获取当前的进程号,但是其父进程却变成了 1号进程,即init。 (后面的博客,写到守护进程的时候,再说明)

2014-02-06 21:51:38 667

原创 使用fread和fwrite函数读写文件

size_t   fread (void *ptr, size_t size, size_t nitems,FILE *stream);nitems表示块数,size表示每个块具有size个字节大小,也就是说一次性可以读取 size * nitems个字节。 siez_t fwrite(const void *ptr, size_t size, size_t nitems, FILE

2014-02-06 15:32:16 1274

原创 使用fgets和fputs函数读写文件

//将读取到的字符串结尾自动加'\0', 和string类似//若读取错误返回NULLchar * gets(char *s)char * fgets(char *s, int n ,FILE *stream)//将字符串输出后,(不输出'\0'), puts添加'\n', // fputs按照fgets的原样输出int puts(const char * s)

2014-02-06 14:49:16 1598

原创 使用getc和putc函数读写文件

使用字符函数读写文件! 首先getchar(void) getc( stdin); 同理putchar();实现目标:读取文件“/etc/passwd"中的 用户名称,并将其存入文件”name.txt"代码如下:运行结果:

2014-02-06 14:11:50 817

原创 lua的数据结构 -- 集合和包

在c语言中,字符可以放在一个集合中,但是要在集合中查找指定的字符,那么就要进行搜索查找。那么在lua中,可以使用table,将这些字符作为下标,若要查找这些字符,不用搜索,直接测试下标的值就可以了,相当方便代码如下:

2014-02-05 21:28:21 851

原创 lua的数据结构 -- 队列

Lua的table库提供的insert和remove操作可以用来实现队列,但这种方式实现的队列针对大数据量时效率太低,有效的方式是使用两个索引下标,一个表示第一个元素,另一个表示最后一个元素。和c语言类似代码如下:使用起来比c语言中用数组实现的循环队列更简单高效

2014-02-05 21:11:43 708

原创 lua的数据结构 -- 链表

在lua中很少用到链表,但是使用table很容易实现链表。就如同C语言中,一个table当做一个节点。每个节点有2个字段,一个字段包含对其他table的引用,一个字段是当前节点的value代码如下:是不是比C语言中使用指针实现的链表,要简单很多呢?

2014-02-05 16:18:05 993

原创 lua的数据结构 -- 多维数组

创建多维数组有2中方式,第一种是table的嵌套使用。代码如下:第2种方式就是2个索引合并成一个索引。 因为数组在内存中是一段连续的内存空间,2维数组也是一段连续的内存空间。索引为整数的时候,代码如下:

2014-02-05 16:08:27 2453

原创 lua的数据结构 -- 数组

lua中的数组和c语言的数组差不多,只是lua的数组操作都是从1开始的,而不是从0开始的,创建数组可以使任意的下标,但是为了适合lua的语言方式,最好从下标1开始创建

2014-02-05 15:50:13 709

原创 lua中的函数

在lua中,函数可以看成一个变量,可以存储在全局或局部变量中。 还可以存储在table中,代码如下:另外lua中的函数还支持“尾调用”,就是相当于goto的函数调用。注意这里的“尾调用”一定是函数的最后一个动作。不是传统的函数调用

2014-02-05 09:22:44 508

原创 lua的select操作

使用select可以返回元素的个数

2014-02-04 21:19:53 867

原创 lua io的操作

lua中的io操作比较简单,函数列表如下:write的函数很简单,主要是read函数read的参数*number 读数字*line 读行*all 读文本

2014-02-04 16:36:30 583

原创 lua中string的使用

和table一样,string也具有强大的功能。简单的find函数是返回单词在字符串中的位置,这里是以单词来计数,不是以字符计数的其他函数的使用也都很简单:

2014-02-04 16:10:55 551

原创 lua中table的使用

lua中的table对象的函数有很多,用{}表示为一个table对象注意table的下标是从1开始,和c语言中的从0开始,是不一样的。table的删除,如果不指定pos,默认删除最后一个排序:

2014-02-04 15:02:01 565

原创 lua中数学库

lua中的数学库是不需要引用的,可以直接使用math.xxx

2014-02-04 14:43:33 484

原创 求全排列

问题来源:数据结构算法与应用——C++语言描述  Page 7问题: 检查n 个不同元素的所有排列方式思路:使用递归求解:基部: 当下标为n-1的时候,整个元素已经遍历完成,此时的排列具有唯一性递归: 若K代码:templatevoid Perm(T list[], int k, int m){ int i; if (k == m) {

2014-02-03 16:24:31 474

原创 lua中的self

类似于c++的this指针,lua使用self代码如下:

2014-02-02 21:46:57 501

原创 lua -require

在lua中require相当于c中的include。代码示例如下:

2014-02-02 21:34:58 724

原创 Lua 文件读写

1. lua中, 只有false和nil为假,数字0和空字符都视为真。2. number表示实数3. 读写文件

2014-02-02 21:27:01 492

原创 cocos2dx 动画创建

1. 对于动画的创建,网上很多,但是大多数都是按照如下图的方式进行的这样每次都需要程序员手动更改图片的次数等等,或者新添加其他动画。2.在实际开发中,应该使用plist文件,直接由美工编辑图片,然后交给我们使用就可以了编辑plist文件添加代码:CCAnimation * boys =CCAnimationCache::sharedAnimationCa

2014-01-30 08:56:52 443

原创 C++ primer学习: string的= 的运算符重载

C++primer 112页,看到string对象的赋值操作,就想起了 = 的运算符重载考虑字符串的基本类型的用法1. char * str1 = “hello”;2. char * str2 = str1;3.  str3 = str2 = “hello”;//可以连续赋值实现代码如下:String& String::operator=(const String&

2014-01-29 22:54:52 520

原创 C++ primer学习: const 总结

春节比较空闲,重新学习C++,使用课本 c++ primer。对const总结了一下,发现原来有这么多的注意事项:1. 在c语言中const修饰的是全局的只读变量    在C++中,const修饰的是不具有外部链接的常量,若要在其他文件中使用,必须声明为extern2. c++中发现对const适用了extern 或&的时候,为对应的常量分配空间。但是这个空间中的值不会被使

2014-01-29 19:32:26 436

原创 cocos2dx plist和batchNode总结

之前写过对sprite的理解,实际上就是对图片的加载,不可避免的要进行IO操作。那么如果项目中的图片使用的很多,那么就要进行多次的I/O,浪费cpu的资源。那我们很自然的就想到,是否可以将图片打包,一次性的加载进来呢? 这是可以的。我们可以使用TexturePacker工具,将图片进行打包成plist文件,然后直接加载plist文件就可以了。1. 打包的图片是可以进行加密的,这样可以更

2014-01-28 10:19:13 1663

原创 cocos2dx -xml 解析续

1. 前篇写的xml解析最后部分编辑出了点问题。这里进行补充说明:使用CCsaxparse还是要重写3个函数的,要么就是自己提前封装一个类,要么就想其他方法了,个人比较懒,觉得直接使用CCUserDefault就可以读写了,只是考虑到很多项目都会写在同一个xml中,这样可能会引起读取错误。如下图:这个xml的文件是直接写死了的,所以建议直接在CCUserDefault中,增加可以更改x

2014-01-24 15:23:23 498

原创 cocos2dx -xml 解析

1. 之前已经能够利用CCUserDefault类将数据写入xml,  现在我们看看如何读取数据。2.根据CCUserDefault进入其定义,找到与xml相关的函数,再跟进去我现在使用的版本是2.2的,如上图可以看到,使用的是开源库tinyxml,其路径是: E:\cocos2d-x-2.2\cocos2dx\support\tinyxml23. 这样2dx已经集成了tinx

2014-01-24 12:54:58 658

转载 利用C/C++库函数读写文件的基本用法

文章来自: http://www.cppblog.com/Chosen/archive/2013/07/21/202014.html     本文分别简单讲述了如何利用C和C++库函数对文件的读写,涵盖了常用的文件操作函数。网上关于C/C++文件操作的介绍的博客很多,所以本文也大同小异,也主要是做一个备忘,不有每次都百度了。但本文重点在于几个库函数的运用,而不是从文件的属性或分类开始。说明

2014-01-23 20:20:58 1787

原创 cocos2dx xml 数据存储

1. 为了兼容性,对文件操作的时候,首先要判断文件是否有可写的权限//1.获取可以写的文件路径std::string  writeablePath = CCFileUtils::sharedFileUtils()->getWritablePath();此处记得一定加std,不然当前文件使用的命名空间找不到string运行结果如下图:2. 我们编写项目的时候,少量数据

2014-01-23 20:13:05 742 1

原创 cocos2dx 多线程

1. 在前面的弱联网中,添加库的时候,是有看到pthread的库文件也是在里面的。说明2dx也集成了多线程。如果想对多线程了解更多,可以找找linux网络编程的书籍看看2. 加头文件 #include "pthread/pthread.h",直接上代码编译出错:fatal error C1083: 无法打开包括文件:“sched.h”: No such file or di

2014-01-23 17:36:00 692

原创 cocos2dx- http

1. 在前面的弱联网中,curl的使用时阻塞的,那么就需要使用多线程技术了。那有没有更简单的呢?其实2dx已经为我们封装好了网络的库2. 在2dx的testcpp中有curltest文件,可以详细看看,现在我们直接使用写好回调函数,就可以get 网页信息了,是不是很简单呢!!

2014-01-23 16:07:10 613

原创 cocos2dx-弱联网

1. 新建一个工程,查看其属性是没有libcurl的,于是在2dx自带的testcpp中,找到相关项,复制过来如图:2. 引入头文件curl,编译通过ok!3. 可以在2dx的文件下找到这个库4. 在整个场景中只需要初始化一次就可以了,重写 onexit();//1.初始化curl(参数选all,避免跨平台编译出问题)curl_global_init(C

2014-01-23 15:18:31 1462

开始界面的编写

开始界面的编写的源码,有兴趣的同学可以看看

2014-02-17

PC游戏编程(网络游戏篇)-CG实验室-重庆大学出版社

这是不错的PC游戏网络编程电子书,特别是网络入门这块

2014-01-01

C++入门经典第三版.pdf

中文版,很好的c++入门教程,国外的经典教材

2013-12-28

空空如也

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

TA关注的人

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