自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Lua 学习笔记(4) -- 模块与包

从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。创建模块其实 Lua 的模块是由变量、函数等已知元素组成的 table,因此创建一个模块很简单,就是创建一个 table,然后把需要导出的常量、函数放入其中,最后返回这个 table 就行。格式如下:

2014-11-14 14:02:26 825

转载 Step By Step(Lua模块与包)

从Lua 5.1开始,我们可以使用require和module函数来获取和创建Lua中的模块。从使用者的角度来看,一个模块就是一个程序库,可以通过require来加载,之后便得到一个类型为table的全局变量。此时的table就像名字空间一样,可以访问其中的函数和常量,如:1 require "mod"2 mod.foo()3 local m2 = require "mod2"4 l

2014-11-14 13:52:44 709

转载 lua编程 全局变量 环境 模块

1.全局变量与环境lua中真正存储全局变量的地方不是在_G里面,而是在setfenv(i,table)的table中,所有当前的全局变量都在这里面找,只不过在程序开始时lua会默认先设置一个变量_G=这个里面的table而已。所以在新设置环境后,如果还想找到之前的全局变量,通常需要附加上为新的table设置元表{_index=_G}下面的几个例子:a=1prin

2014-11-14 13:15:00 1106

转载 Tolua++ 实现分析

tolua++ 是一个将 C/C++ 的函数和对象导出给 Lua 脚本使用的工具。使用这个工具的基本步骤:将要导出的 C/C++ 函数和对象定义写入 .pkg 文件;运行 tolua++ 工具,将 .pkg 文件编译为目标 .cpp 文件;将目标 .cpp 文件加入项目,在启用 Lua 虚拟机后调用目标文件中的 open() 函数注册导出的内容。~tolua++ 工

2014-11-08 13:08:20 1003

转载 Cocos2d-x 3.0 新的渲染架构

8月1号这一天,cocos2d-x 官方微博上说 x 团队正在纠结是否用智能指针替换现有的引用计数内存管理机制,结果引发大家的争论。在我看来,引发这个争论的原因是 cocos2d-x 打算实现多线程化,从而充分利用现代智能手机的多核处理器资源。而多线程化的一个最重大需求,应该就是 cocos2d-x 3.0 新的渲染架构了。cocos2d-x 3.0 的渲染架构设计来自 Zynga

2014-11-08 13:06:18 652

转载 Cocos2d-x之LUA脚本引擎深入分析

另:本章所用Cocos2d-x版本为:Cocos2d-2.0.2http://cn.cocos2d-x.org/download         大家好,又是一周过去了,这一周忙的有点焦头烂额,除了工作照例每天加班到九点外,工具箱又做了大幅改进,新的论坛游戏兔子game2z也上线了,Cocos2d-x的学习时间被压缩的很少了,现在是凌晨一点零六分,看着妻子睡熟的样子,我也只

2014-11-08 12:34:31 1252

转载 collectgarbage简介

Collectgarbage - It does what it says it doesDefinitioncollectgarbage ([opt [, arg]])This function is a generic interface to the garbage collector. It performs different functions according

2014-11-07 15:17:24 2368

转载 Lua的weak table和Userdata

weak table是什么意思,建议不要看中文翻译的,我以前看了半天还是没懂啥子意思.lua 手册原文是这样解释的:A weak table is a table whose elements are weak references. A weak reference is ignored by the garbage collector. In other words, if t

2014-11-07 15:01:49 1003

转载 Step By Step(Lua弱引用table)

Lua采用了基于垃圾收集的内存管理机制,因此对于程序员来说,在很多时候内存问题都将不再困扰他们。然而任何垃圾收集器都不是万能的,在有些特殊情况下,垃圾收集器是无法准确的判断是否应该将当前对象清理。这样就极有可能导致很多垃圾对象无法被释放。为了解决这一问题,就需要Lua的开发者予以一定程度上的配合。比如,当某个table对象被存放在容器中,而容器的外部不再有任何变量引用该对象,对于这样的对象,Lua

2014-11-07 14:56:31 738

转载 Lua的内存监测和回收

Lua内存是自动收集的, 这点跟Java类似, 不被任何对象或全局变量引用的数据,将被首先标记为回收,不需要开发者做任何事情.但是,正如Java也会有内存泄露一样, Lua也会有, 只不过,跟C++的不同,它是由于代码执行所装载的资源,并没有被彻底销毁而导致,其中,最臭名昭著的就是不小心把局部变量声明成了全局变量(忘了加local修饰符)。 类似这样造成的内存泄露, 跟任何其他语言的内存泄露一样,

2014-11-07 14:27:23 19060

转载 lua中求table长度

关于lua table介绍,看以前的文章http://www.cnblogs.com/youxin/p/3672467.html。官方文档是这么描述#的:取长度操作符写作一元操作 #。 字符串的长度是它的字节数(就是以一个字符一个字节计算的字符串长度)。table t 的长度被定义成一个整数下标 n 。 它满足 t[n] 不是 nil 而 t[n+1] 为 nil; 此外,

2014-11-05 18:02:16 50148

转载 浅析Lua中table的遍历

当我在工作中使用lua进行开发时,发现在lua中有4种方式遍历一个table,当然,从本质上来说其实都一样,只是形式不同,这四种方式分别是:for key, value in pairs(tbtest) do   XXX  end  for key, value in ipairs(tbtest) do   XXX  end  for i=1, #(tbtest) do      

2014-11-05 16:18:59 904

转载 lua5.1中的setfenv使用

setenv是在lua5.1中有的改变函数作用域的函数。用法是setenv(func or number,tbl),第一个参数可以是数字也可以是函数,数字1表示当前的作用于,2表示上一层的作用域,特殊情况0,setfenvchanges the environment of the running thread. In this case,setfenv returns no values

2014-11-04 18:40:58 2123

转载 lua面向对象模拟简介

lua不是面向对象语言,但可以通过表(table)和元表(metatable)来模拟。table 是 lua 中唯一的一种数据结构,它可以用来描述原始的数组、符号表、集合、 记录、图、树等。每一个tabel都可以附加元表, 元表是带有索引集合的表,它可以改变被附加表的行为。因此,lua可以利用元表来模拟面向对象的行为。首先需要了解下面四个东东:__index,__newindex,rawg

2014-11-04 16:40:26 717

转载 lua编程 全局变量 环境 模块

1.全局变量与环境lua中真正存储全局变量的地方不是在_G里面,而是在setfenv(i,table)的table中,所有当前的全局变量都在这里面找,只不过在程序开始时lua会默认先设置一个变量_G=这个里面的table而已。所以在新设置环境后,如果还想找到之前的全局变量,通常需要附加上为新的table设置元表{_index=_G}下面的几个例子:a=1prin

2014-11-04 13:27:32 579

转载 遍历Lua全局环境变量

Lua全局变量Lua解释器提供了很多全局变量,比如print等,便于程序开发。Lua提供的所有全局变量都保存在一个普通的表_G中。目前Lua-5.2.1中_G中的全局变量主要有“字符串”、“函数”及“表”三种。那该如何遍历这些值呢?(当然,你在会话中进行的任何变更,都将对其造成影响,除非有local限定)如何遍历Lua提供的全局变量?既然_G是一个普通的表,那么我们可以采用for语

2014-11-04 13:22:16 8128

转载 细究lua闭包->搞清本质才是王道

Lua中的函数是一阶类型值(first-class value),定义函数就象创建普通类型值相同(只不过函数类型值的数据主要是一条条指令而已),所以在函数体中仍然能定义函数。假设函数f2定义在函数f1中,那么就称f2为f1的内嵌(inner)函数,f1为f2的外包(enclosing)函数,外包和内嵌都具有传递性,即f2的内嵌必然是f1的内嵌,而f1的外包也一定是f2的外包。内嵌函数能访问外包函数

2014-11-03 14:13:45 659

转载 TCP长连接与短连接的区别

1. TCP连接当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的经典的三次握手示意图:经典的四次握手关闭图:2. TCP短连接我们模拟一下TCP短连接的情况,c

2014-10-15 16:50:35 531

转载 揭开Socket编程的面纱

对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1.         什么是TCP/IP、UDP?2.         Socket在哪里呢?3.         Socket是什么呢?4.         你会使用它们吗?什么是TCP/IP、UDP?         TCP/IP(Trans

2014-10-15 16:27:51 476

转载 C++设计模式——装饰模式

前言在实际开发时,你有没有碰到过这种问题;开发一个类,封装了一个对象的核心操作,而这些操作就是客户使用该类时都会去调用的操作;而有一些非核心的操作,可能会使用,也可能不会使用;现在该怎么办呢?将这些非核心的操作全部放到类中,这样,一个类就包含了很多核心的操作和一些看似有关,但是又无关的操作;这就会使核心类发生“爆炸”的现象,从而使核心类失去了一定的价值,也使使用核心类的客户在核心操

2014-10-12 14:08:56 681

转载 我所理解的设计模式(C++实现)——组合模式(Composite Pattern)

解决的问题:我们PC用到的文件系统,其实就是我们数据结构里的树形结构,我们处理树中的每个节点时,其实不用考虑他是叶子节点还是根节点,因为他们的成员函数都是一样的,这个就是组合模式的精髓。他模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。将对象组合成树形结构以表示“部分-整体”的层次结构。组合模式使得用户对单个对

2014-10-12 13:11:21 493

转载 我所理解的设计模式(C++实现)——观察者模式(Observer Pattern)

概述:        最近中国股市起起伏伏,当然了起伏就用商机,小明发现商机后果断想入市,买入了中国证券,他想在电脑客户端上,网页上,手机上,iPad上都可以查看到该证券的实时行情,这种情况下我们应该怎么设计我们的软件呢?我们可以这样:小明的所有客户端上都订阅中国证券这个股票,只要股票一有变化,所有的客户端都会被通知到并且被自动更新。         这就是我们的观察者模式,她定义

2014-10-12 12:59:28 474

转载 两个栈实现队列 两个队列实现栈

为说明思想,假设队列、栈都很大,不会出现满的情况。1. 两个栈实现队列//前提已知:struct Stack{ int top;   //栈顶指针 int stacksize;//栈的大小 int *s;   //栈底指针};void InitStack(Stack *s);void Push(Stack *s, int k);in

2014-10-12 10:19:42 493

转载 C++设计模式-Adapter适配器模式

Adapter适配器模式作用:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。分为类适配器模式和对象适配器模式。系统的数据和行为都正确,但接口不符时,我们应该考虑使用适配器,目的是使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况。

2014-10-12 09:30:22 461

转载 C++设计模式之工厂方法模式

问题描述之前讲到了C++设计模式——简单工厂模式,由于简单工厂模式的局限性,比如:工厂现在能生产ProductA、ProductB和ProductC三种产品了,此时,需要增加生产ProductD产品;那么,首先是不是需要在产品枚举类型中添加新的产品类型标识,然后,修改Factory类中的switch结构代码。是的,这种对代码的修改,对原有代码的改动量较大,易产生编码上的错误(虽然很简单,如

2014-10-12 09:15:59 660

转载 C++设计模式之简单工厂模式

专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。它又称为静态工厂方法模式,属于类的创建型模式。  简单工厂模式的UML类图  简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。   该模式中包含的角色及其职责   工厂(Creator)角色 

2014-10-12 09:02:37 469

转载 C++中的单例模式

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作系统只能有一个窗口管理器,一台PC连一个键盘。       单例模式有许多种实现方法,在C++中,甚至可以直接用一个全局变量做

2014-10-12 08:53:19 407

转载 深入浅出外观模式(一)

外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便。 1. 外观模式概述      不知道大家有没有比较过自己泡茶和去茶馆喝茶的区别,如果是自己泡茶需要自行准备茶叶、茶具和开水,如图1(A)所示,而去茶馆喝茶,最简单的方式就是跟茶馆服务员说想要

2014-09-29 10:24:35 556

转载 关于在cocos2dx中继承Sprite的分析与技巧

本文章特指使用C++作为编程语言,基于cocos2dx游戏引擎开发游戏。 在cocos2dx中,sprite作为精灵类是使用最为频繁的类,与其它类相比,如:Node, Layer或Scene,Sprite最大的不同是它包含一个纹理,通过OpenGL的渲染,在游戏中呈现出来。游戏中的主角,怪物,背景,或是精灵的血条等都是通过Sprite来实现的。 在cocos2dx中

2014-09-28 15:14:16 814

转载 用GDB调试程序

用GDB调试程序(zz)作者:haoel (QQ是:753640,MSN是:[email protected])来源:http://blog.csdn.net/haoel/archive/2003/07/02/2879.aspx[编辑]使用GDB一般来说GDB主要调试的是C/C++的程序。要调试C/C++的程序,首先在编译时,我们必须要把调试信息加到可执行文件中。使用编译器(cc/

2014-09-25 21:02:25 546

转载 mysql UNIX时间戳与日期的相互转换

UNIX时间戳转换为日期用函数: FROM_UNIXTIME()select FROM_UNIXTIME(1156219870);日期转换为UNIX时间戳用函数: UNIX_TIMESTAMP()Select UNIX_TIMESTAMP(’2006-11-04 12:23:00′);例

2014-09-24 19:46:05 5514

转载 google_Glog使用(linux)

第二篇日志,居然还是google的 google-glog,顾名思义,google提供的日志库,刚开始使用,心得体会暂时没有,先看看如何使用吧安装:step1:下载地址:http://code.google.com/p/google-glog/downloads/detail?name=glog-0.3.1-1.tar.gzstep2:解压,configure,make,m

2014-09-24 11:33:32 5010

转载 window环境下glog的安装

下载后解压,利用Visual Studio打开google-glog.sln。生成解决方案安装:方法一:将libglog.dll和libglog.lib文件,拷贝文件到你的工程文件夹下,并拷贝src\windows\下的glog目录到你的工程文件下。方法二:你也可以将这两个文件拷贝到系统文件夹下,实现全局访问。1. 将libglog.dll拷贝到C:\Progr

2014-09-23 14:12:36 11254

转载 深入浅出之正则表达式(二)

前言:       本文是前一片文章《深入浅出之正则表达式(一)》的续篇,在本文中讲述了正则表达式中的组与向后引用,先前向后查看,条件测试,单词边界,选择符等表达式及例子,并分析了正则引擎在执行匹配时的内部机理。        本文是Jan Goyvaerts为RegexBuddy写的教程的译文,版权归原作者所有,欢迎转载。但是为了尊重原作者和译者的劳动,请注明出处!谢谢! 9

2014-09-19 17:05:52 561

转载 深入浅出之正则表达式(一)

前言:       半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程。于是一直想把他翻译过来。这个愿望直到这个五一长假才得以实现,结果就有了这篇文章。关于本文的名字,使用“深入浅出”似乎已经太俗。但是通读原文以后,觉得只有用“深入浅出”才能准确的表达出该教程给我

2014-09-19 17:03:36 624

转载 XShell 技巧分享

XShell是一款Windows下非常优秀的远程连接Linux主机的工具,是我平常使用不可缺少的工具。今天没事看了下XShell的帮助,找到了一些很实用的技巧,分享给大家。复制和粘贴由于在linux的Shell下,Ctrl+c是中断当前指令,这个快捷键和windows下的复制快捷键冲突,所以经常犯错误。。。想复制的时候按了ctrl+c,结果中断了当前指令。在Xshell中,

2014-09-15 18:18:26 653

转载 Cocos2d-x 多分辨率适配完全解析

overview从Cocos2d-x 2.0.4开始,Cocos2d-x提出了自己的多分辨率支持方案,废弃了之前的retina相关设置接口,提出了design resolution概念。有以下相关接口:CCEGLView::sharedOpenGLView()->setDesignResolutionSize() //设计分辨率大小及模式CCDirector::sharedDir

2014-09-12 17:23:32 561

转载 [Cocos2d-x v3.x官方文档]Cocos2d-x 3.0坐标系详解

Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系。笛卡尔坐标系笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外,OpenGL坐标系为笛卡尔右手系。屏幕坐标系和Cocos2d坐标系标准屏幕坐标系使用和OpenGL不同的坐标系,而Cocos2d则使用和OpenGL相同的坐标系。iOS, Android, Windows

2014-09-04 15:59:15 2256

转载 [Android分享] Android 分辨率自适应

1.术语和概念术语说明备注Screen size(屏幕尺寸)指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸摩托罗拉milestone手机是3.7英寸Aspect Ratio(宽高比率)指的是实际的物理尺寸宽高比率,分为long和nolong

2014-09-03 21:02:04 658

转载 Override和final

我经常会发现虚函数在C++中会引起很多问题,因为没有一个强制的机制来标识虚函数在派生类中被重写了。virtual关键字并不是强制性的,这给代码的阅读增加了一些困难,因为你可能不得不去看继承关系的最顶层以确认这个方法是不是虚方法。我自己经常鼓励开发者在派生类中使用virtual关键字,我自己也是这么做的,这可以让代码更易读。然而,有一些不明显的错误仍然会出现,下面这段代码就是个例子。class

2014-08-18 16:30:11 3121

基于学习的相关反馈算法论文数篇

共有8篇论文,都是关于基于学习的反馈算法

2012-02-09

空空如也

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

TA关注的人

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