自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Cocos2d-x shader学习3: sprite描边(Outline)

Cocos2d-x 3.x的label使用了freetype字体引擎(http://www.freetype.org/),可以很轻松的实现描边和阴影效果。所以本篇文章只针对于sprite来实现描边效果。官方demo中描边shader没有看懂,看效果好像是有点问题,透明的部分变成了黑色。作者也没有怎么解释,直接丢了一个网址出来(http://www.idevgames.com/forums/threa

2016-02-20 15:47:23 4309 1

原创 Cocos2d-x shader学习2: 模糊(Blur)

模糊效果在游戏中经常会用到,有的为了突出前景会把背景给模糊化,有的是因为一些技能需要模糊效果。模糊是shader中较为简单的一种应用。cocos2dx 3.x给的demo中,就有sprite的模糊的效果。先说下这个模糊算法的大致思路,我们在片段着色器中可以得到当前像素点的颜色值,要想让这个颜色变得模糊,就要让它与它周围的像素点的颜色稍微接近一点,那么我们就需要拿到这个像素点周围的像素点的颜色值,我

2016-02-17 16:40:26 6786 1

原创 Cocos2d-x shader学习1: 灰度shader

灰度shader最近在学习shader,就把cocos2d-x 3.x版本中的很简单也很常用的灰度shader拿出来学习一下。#ifdef GL_ESprecision mediump float; // ES版本的精度限定符,精度变低后可以提高效率#endifvarying vec4 v_fragmentColor;varying vec2 v_texCoord;void main(void

2016-02-02 15:09:48 1782

原创 nginx多域名配置

nginx多域名配置nginx多域名配置是在配置文件中建立多个server配置,在每个server配置中用server_name来对域名信息进行过滤。 举个例子,下面是一个conf文件:server { listen 80; server_name www.web1.com; #绑定域名 index index.htm index.html index.php;

2016-01-21 21:07:45 561

原创 lua和c的亲密接触

介绍lua和c的亲密接触,靠的是一个虚拟栈。lua通过这个虚拟栈来实现和c之间值的互传。栈上的每一个元素是一个lua值(nil,number,string...)。当lua调用c函数的时候,这个函数会得到一个新的栈,这个栈独立于c函数本身的栈,也独立于lua自己的栈。它里面包含了lua要传给c的所有参数,然后c函数会把返回的结果放入这个栈中返回给调用者。对于栈的查询操作,如果按照栈的规

2016-01-15 18:27:39 395

原创 LeetCode 2. Add Two Numbers 解题报告

题意:有两个链表,它们表示逆序的两个非负数。例 (2 -> 4 -> 3)表示342,求两个数字的和,并用同样的方式逆序输出。如342+465 = 807,你需要把结果表达为(7 ->0 ->8)。思路:模拟一下加法的运算过程,从个位开始加,进位保存下来,十位运算的时候把个位的进位加上,依次类推。C++ Code/** * Definition for sin

2016-01-06 19:19:47 396

原创 LeetCode 1. Two Sum 解题报告

题意:数组nums中,有两个元素的和是target,找出这两个元素的位置。思路:维护一个map,用数组的元素的值做key,用元素的位置做value。遍历nums,对每个num来说,如果map[target - num] 有值的话,就返回map[target - num]和num的位置,如果没有找到的话,就把num插入到map中,map[num] = index。时间复杂度O(n

2015-12-28 19:48:38 2704

翻译 LPeg编程指南

原文:http://www.inf.puc-rio.br/~roberto/lpeg/lpeg.html译者序:这个是官方的LPeg的文档。这段时间学习LPeg的时候发现国内关于LPeg的文章很少,所以决定把文档翻译一下。翻译的不是很完整,只是常用的一部分,会慢慢的翻译下去,有同学能帮我补全的话就太感谢了。介绍:LPeg是lua中一个新的模式匹配(pattern

2015-12-25 17:38:28 3337

原创 Cocos2d-x shader学习1: 灰度shader

最近在学习shader,就把cocos2d-x 3.x版本中的很简单也很常用的灰度shader拿出来学习一下。#ifdef GL_ESprecision mediump float; // ES版本的精度限定符,精度变低后可以提高效率#endifvarying vec4 v_fragmentColor;varying vec2 v_texCoord;void main(void)

2015-11-17 20:46:30 799

原创 Cocos2d-x中的CC_CALLBACK_X详解

Cocos2d-x 3.x版本用CC_CALLBACK_0,CC_CALLBACK_1,CC_CALLBACK_2和CC_CALLBACK_3的宏来定义回调方法类的。3.x版本的例子:child->runAction(Sequence::create( DelayTime::create(1.4f),

2015-09-24 19:39:51 2488

原创 一步一步写平衡二叉树(AVL树)

一步一步写平衡二叉树(AVL树)作者:C小加 更新时间:2012-8-20  平衡二叉树(Balanced Binary Tree)是二叉查找树的一个进化体,也是第一个引入平衡概念的二叉树。1962年,G.M. Adelson-Velsky 和 E.M. Landis发明了这棵树,所以它又叫AVL树。平衡二叉树要求对于每一个节点来说,它的左右子树的高度之差不能超过1,如果插入或者删

2015-09-24 17:17:54 277

原创 一步一步写二叉查找树

一步一步写二叉查找树作者:C小加  更新时间:2012-8-9二叉查找树(BST)是二叉树的一个重要的应用,它在二叉树的基础上加上了这样的一个性质:对于树中的每一个节点来说,如果有左儿子的话,它的左儿子的值一定小于它本身的值,如果有右儿子的话,它的右儿子的值一定大于它本身的值。二叉查找树的操作一般有插入、删除和查找,这几个操作的平均时间复杂度都为O(logn),插入和查找操

2015-09-24 17:17:10 383

原创 基本数据结构:二叉树(binary tree)

基本数据结构:二叉树(binary tree)作者:C小加  更新时间:2012-8-6二叉树首先是一棵树,每个节点都不能有多于两个的儿子,也就是树的度不能超过2。二叉树的两个儿子分别称为“左儿子”和“右儿子”,次序不能颠倒。如图1是一个简单的二叉树。 二叉树的种类一种是满二叉树,除了最后一层的叶子节点外,每一层的节点都必须有两个儿子节点。如图2是一

2015-09-24 17:16:14 469

原创 基本数据结构:树(tree)

基本数据结构:树(tree)作者:C小加 更新时间:2012-8-3无论是链表,栈还是队列,它们都是线性结构的,每个节点的左边最多一个节点,右边也最多一个节点,对于大量的输入数据,线性表的访问时间太慢,不宜使用。这里我要说一种非线性的数据结构,其大部分操作的运行时间平均为O(logn)。我们涉及到的这种数据结构叫做树。在计算机科学中,树是非常有用的抽象概念。我们形象的去描述

2015-09-24 17:15:12 530

原创 基本数据结构:栈(stack)

基本数据结构:栈(stack)作者:C小加 更新时间:2012-8-1栈(stack)是限制插入和删除只能在一个位置上进行的线性表,该位置在表的末端,叫做栈顶。添加元素只能在尾节点后添加,删除元素只能删除尾节点,查看节点也只能查看尾节点。添加、删除、查看依次为入栈(push)、出栈(pop)、栈顶节点(top)。形象的说,栈是一个先进后出(LIFO)表,先进去的节点要等到后边进去的

2015-09-22 18:04:00 274

原创 基本数据结构:链表(list)

基本数据结构:链表(list)作者:C小加 更新时间:2012-7-31  谈到链表之前,先说一下线性表。线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表有两种存储方式,一种是顺序存储结构,另一种是链式存储结构。  顺序存储结构就是两个相邻的元素在内存中也是相邻

2015-09-22 18:02:54 414

原创 C++ 11 学习3:显示虚函数重载(override)

5.显示虚函数重载在 C++ 里,在子类中容易意外的重载虚函数。举例来说:struct Base { virtual void some_func();}; struct Derived : Base { void some_func();};Derived::some_func 的真实意图为何? 程序员真的试图重载该虚函数,或这只是意外?

2015-09-20 21:22:16 557

原创 C++ 11 学习2:空指针(nullptr) 和 基于范围的for循环(Range-based for loops)

3.空指针(nullptr)早在 1972 年,C语言诞生的初期,常数0带有常数及空指针的双重身分。 C 使用 preprocessor macroNULL 表示空指针, 让 NULL 及 0 分别代表空指针及常数 0。 NULL 可被定义为 ((void*)0) 或是 0。C++ 并不采用 C 的规则,不允许将 void* 隐式转换为其他类型的指针。 为了使代码 char* c = NU

2015-09-20 21:22:12 452

原创 C++ 11 学习1:类型自动推导 auto和decltype

Cocos 3.x 用了大量的C++ 11 的东西,所以作为一个C++忠实粉丝,有必要对C++ 11进行一个系统的学习。使用C++11之前,一定要注意自己使用的编译器对C++11的支持情况,有些编译器并不是完全支持,比如我正在使用的vs2012。这里是msdn里面VS各版本对C++ 11 的支持 对 C++11 功能的支持(现代 C++) 1.autoauto这个关键字C++原先就

2015-09-20 21:22:07 1519

翻译 提交Sublime Text 插件到Package Control

最近写了一个lua智能提示的插件LuaSmartTips。这个插件一直都是自己一个人在用,昨天突然想把插件提交到Package Control,如果其他的人有这样的需求就可以直接安装。Package Control网站上已经给出了很详细的提交步骤,不过是英文版的,英语好的可以直接读Submitting a Package。下面主要介绍一下针对于代码托管在Github上面的插件提交。1.

2015-09-20 21:22:03 428

原创 写lua时需要注意的地方

条件语句判断时,只有false和nil会导致判断为假,其他的任何值都为真。 Lua 的字符串与编码无关; 它不关心字符串中具体内容。标准 Lua 使用 64 位整数和双精度(64 位)浮点数, 但你也可以把 Lua 编译成使用 32 位整数和单精度(32 位)浮点数。 以 32 位表示数字对小型机器以及嵌入式系统特别合适。table 是一个关联数组, 也就是说,这个数组不仅仅以数字做索

2015-09-20 21:21:58 2639

原创 重新认识JavaScript

JavaScrpit在我眼中一直是web前端脚本语言,而这段时间的一些工作,让我对JavaScript有了一个全新的认识。   公司准备启动的一个手游项目,服务器端准备使用网易的开源框架pomelo。pomelo是基于Node.js的高性能,分布式游戏服务器框架。它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发。 pomelo不但适用于游戏

2015-09-20 21:21:53 321

原创 ACE网络编程笔记(2):IPC SAP、ACE_SOCKET和TCP/IP通信实例

socket、TLI、STREAM管道和FIFO为访问局部和全局IPC机制提供广泛的接口。但是,有许多问题与这些不统一的接口有关联。比如类型安全的缺乏和多维度的复杂性会导致成问题的和易错的编程。ACE的IPC SAP类属提供了统一的层次类属,对那些麻烦而易错的接口进行封装。在保持高性能的同时,IPC SAP被设计用于改善通信软件的正确性、易学性、可移植性和可复用性。 IPC SAP类属

2015-09-20 21:21:49 1515

原创 ACE网络编程笔记(1):ACE自适配通信环境

介绍      ACE自适配通信环境(ADAPTIVE Communication Environment)是可以自由使用、开放源码的面向对象(OO)构架(Framework),在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++Wrapper Facade(包装外观)和构架组件,可跨越多种平台完成通用的通信软件任务,其中包括:事件多路分离和事件处理器分派、信号处

2015-09-20 21:21:44 546

原创 MFC文档序列化实现保存和加载

1、序列化定义MFC文档-视图结构中,序列化机制可以实现内存中对象储存和加载。序列化机制分为序列化和反序列化,序列化是把内存中的对象以二进制文件的形式存储在磁盘中。反序列化是把序列化后生成的文件恢复到内存。2、CArchive类CArchive没有基类。CArchive允许以一个永久二进制(通常为磁盘存储)的形式保存一个对象的复杂网络,它可以在对象被删除时,还能永久保存。可以从永久

2015-09-20 21:21:39 533

原创 Ural 1073 Square Country 解题报告

题意:A square problem Time Limit: 3 second Memory Limit: 1000KThere live square people in a square country. Everything in this country is square also. Thus, the Square Parliament has passed a law ab

2015-09-20 21:21:23 315

原创 避免使用宏

概述:        宏是C和C++语言的抽象设施中最生硬的工具,它是披着函数外衣的饥饿的狼,很难驯服,它会我行我素地游走于各处。要避免使用宏。讨论:        在C++中,几乎从不需要使用宏。        可以用const或者enum定义易于理解的常量,用inline避免函数调用的开销,用template指定函数系列和类型系列,用namespace避免名称冲突。  

2015-09-20 21:21:18 298

原创 KMP算法中关于next数组的探究

从《严书》上看到了KMP算法,看了一遍没懂,但觉得挺神奇的,就花费了几天时间深入的理解。算法的原理其实不难,难的就是那个巧妙的next数组,这个next数组很吸引我,我的大部分时间也都是花费在这个数组上面的。这个next数组是KMP里面一个很关键的地方,对于在数据结构书上看过一遍整个算法流程的人,能够把next数组搞明白,整个KMP算法的整体思想就差不多理解了。然后在一些细节上面深入思考一下,

2015-09-20 21:21:13 336

原创 一个实体应该只有一个紧凑的职责

实体:变量、类、函数、名称空间、模板和库。只给一个实体赋予一个定义良好的职责。随着实体变大,其职责范围自然也会扩大,但不应该发散。如果一个实体有几个不同的目的,则给使用带来的难度往往会激增,因为这种实体除了会增加理解难度、复杂性和各部分中的错误外,还会导致其他问题。这种实体不仅更大,而且更难以使用和维护。此外,这种实体经常会为自身的一些特定用途提供有问题的接口,因为各个功能领域之间的部

2015-09-20 21:21:09 273

原创 在高警告级别干净利落的进行编译

虽然警告不会影响你代码的运行,但请不要忽略它。把编译器当做你的朋友,如果它对你发出警告,这经常是说明你的代码中存在潜在的问题。常遇到的一些警告:1、第三方头文件。2、未使用的函数参数。3、定义了从未使用过的变量。4、变量使用前可能未经过初始化。5、遗漏了return语句。6、有符号数/无符号数不匹配。例外情况:有时候,编译器可能发生烦人的甚至虚假的警告,但是

2015-09-20 21:21:04 428

原创 《C++编程规范》--不要拘泥于小节

如果人们按照程序员编程的方式修建房屋,那么一只啄木鸟就能毁灭整个文明。                                                                                                   ---Gerald Weinberg 《C++编程规范》这本书是对多年的C++经验的总结,是编写高质量C++代码的准则。

2015-09-20 21:21:00 775 1

原创 Ural 1014 Product of Digits 解题报告

题意:是找到一个最小的正整数Q,使Q的各位数的乘积等于N。思路:从9到2取余。代码: #include iostream>#include algorithm>usingnamespace std;bool fun(int x,int*ops,int&num){ if(x==1) return1; for(int i=9;i>=2;i--) {

2015-09-20 21:20:55 285

原创 Ural 1025 Democracy in Danger 解题报告

题意:投票者被分成K个组,如果超过半数的组投赞成票,决议就可以通过。每组是投赞成票还是反对票也由每组内部投票决定,若这一组有超过半数的人投赞成票,那么这一组就投赞成票。思路:很水的题。。。代码:#include iostream>#include algorithm>usingnamespace std;int a[103];int main(){ int n;

2015-09-20 21:20:50 371

原创 Ural 1020 Rope 解题报告

题意:已知每个圆圆心的坐标和半径,求绳的长度。。思路:每个圆心围成的多边形的周长,加上圆的周长。代码:#include iostream>#include cmath>#include iomanip>usingnamespace std;constdouble PI=3.141592;typedef struct{ double x,y;}Point;Point p

2015-09-20 21:20:46 258

原创 Ural 1005 Stone Pilet 解题报告

题意:把所给出的石头分成两堆,使两堆的差最小。思路:这道题可以用01背包写。。也可以直接暴力。。。题上的数据范围决定了dp的效率没有暴力的高。。代码:#include iostream>#include algorithm>#include cstring>#include cmath>usingnamespace std;int a[23];int sumAll;int

2015-09-20 21:20:41 285

原创 Ural 1001 Reverse Root 解题报告

题意:求出每个数的平方根,然后倒序输出。保留四位小数。思路:我在Ural的第二道题,我的第一篇ural解题报告,为什么第一道题没有写呢。。。。你们懂的。之所以选择Ural,是因为那上面的题都是原创的,质量很高,有很多国内的童鞋也在那里A题。。。我就是想找一个安静的环境不断的A题,所以就选择了这个oj了。代码:#include iostream>#include cstdio

2015-09-20 21:20:37 649

原创 poj 1247 Magnificent Meatballs 解题报告

题意:S从1顺时针走,E从n逆时针走。使走到一个位置,他们正好把肉丸给完,而且给的肉丸数量相等。思路:水题,每次让给出的总肉丸数最少的那个人继续给,直到所有人给完。然后判断两个人给的总数是否相同。代码:#include iostream>#include cstdio>#include cstring>using namespace std;int table[33];

2015-09-20 21:20:32 362

原创 poj 1207 The 3n + 1 problem 解题报告

题意:给出一个区间,求区间内每一个数按规则(奇数取3n+1,偶数取n/2)变换最后变成1的步数,求最大的一个步数。思路:这道题在poj上很快就是水过了,用的是一般的笨方法,后来看到学校的oj也有这道题,就复制粘贴过去,结果WA了,好诡异。然后改了一些细节,TLE了,顿时无语。然后经过各种优化啊,记忆优化啊,有木有!!优化到不能再优化啊,还是TLE啊。没办法了,只能试试其他的方法了。很简

2015-09-20 21:20:30 311

原创 poj 2606 Rabbit hunt 解题报告

题意:给出n个点的整数坐标(n思路:简单几何题。采用几何中三个点是否在一条直线判定定理。代码:#include iostream>#include algorithm>#include cstdio>using namespace std;typedef struct{ int x,y,count;}Point;Point p[203];double a[203]

2015-09-20 21:20:27 302

原创 poj 1118 Lining Up 解题报告

题意:给出n个点的整数坐标(n思路:简单几何题。采用几何中三个点是否在一条直线判定定理。代码:#include iostream>#include algorithm>#include cstdio>using namespace std;typedef struct{ int x,y,count;}Point;Point p[703];double a[703]

2015-09-20 21:20:25 334

iphlpapi.h

iphlpapi.h

2012-07-18

空空如也

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

TA关注的人

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