- 博客(37)
- 资源 (4)
- 收藏
- 关注
转载 cocos2dx中使用JPG图和只带Alpha的PNG图合成渲染
手游控制安装包的大小是非常重要的,这里介绍一种方法。将带Alpha通道的PNG图片分拆成RGB和Alpha分别保存,其中保存RGB的这张图把它转换成JPG格式的文件,保存Alpha图片的就用PNG格式的。原理是JPG格式的压缩率比较的高可以减小图片的大小,但是它没有Alpha,而Alpha数据单独拎出来一般比较小,所以直接用PNG格式来保存。问题是怎样分拆PNG图片,又怎样在程序中怎样将两张图片的
2015-06-05 13:50:18 6215
转载 ImageMagick 拆分透明PNG、合并JPG和Alpha Mask
透明PNG图片占用空间较大,可以拆分为JPG图片和只带Alpha的PNG图片。这里使用ImageMagick进行拆分和合并实验。ImageMagick版本:6.9.0-Q16以Bird.png图片进行测试:拆分透明PNG为JPG和只带Alpha的PNG12 "D:\Program Files\ImageMagick
2015-06-05 13:47:59 2514
原创 c++ 模拟 delegate
#pragma onceclass ButtonDelegate{public: virtual void onClick(int tag) = 0;};
2014-10-26 11:40:11 730
原创 cocos2d-x中使用libpomelo编译错误问题
编译过程中出现 error C2371: 'ssize_t' : redefinition; different basic types的
2014-10-14 09:24:39 1559
原创 cocos2d-x 3.x读取plist(xml)配置文件
ValueVector star_val = FileUtils::getInstance()->getValueVectorFromFile("sprite.plist");
2014-07-23 11:24:38 3017
原创 ERROR 1045: Access denied for user 'root'@'localhost'
SUSE上的mysql一直跑的好好的,今天重启了SUSE后,mysql突然不能访问了。使用mysql -uroot -pxxx -h127.0.0.1 -P3306连接mysql时,报了个ERROR 1045: Access denied for user 'root'@'localhost'的错误。一番Google后,找到了如下的解决办法/etc/init.d/mysql stop (ser
2014-04-16 14:57:36 1336
转载 指针数组和数组指针
指针数组,就是指针的数组,数组的元素是指针;数组指针,就是指向数组的指针。简单举例说明:int *p[2]; 首先声明了一个数组,数组的元素是int型的指针。int (*p)[2]; 声明了一个指针, 指向了一个有两个int元素的数组。简单的说:用于存储指针的数组,指向数组的指针
2013-10-05 12:09:51 629
转载 Unity3D中的SendMessage
主要作用,跨脚本、语言实现功能。Message相关有3条指令:SendMessage ("函数名",参数,SendMessageOptions) //GameObject自身的ScriptBroadcastMessage ("函数名",参数,SendMessageOptions) //自身和子Object的ScriptSendMessageUpwards ("
2013-09-20 19:52:38 1881
转载 unity3d 动态加载 prefab
在Unity3D中,可能有这种需求:想实例化一个prefab,而该prefab又不在场景中。这时需要在Assets下建立Resources文件夹,然后把需要实例化的prefab拖入该文件夹中。最后在代码中这样实例化:Instantiate(Resources.Load("PrefabName"), position, rotation)
2013-09-07 14:06:24 4128
原创 TexturePacker 非常棒的图像处理工具
前几天收到了TexturePacker的作者Andreas给我的免费的license,可以免费使用TexturePacker的强大功能来开发自己的游戏,在此对Andreas和TexturePacker表示感谢!Hi XXX,Here's your license key for TexturePacker - have fun with it!TP-1N2G-XXX
2013-08-23 21:22:43 1066
转载 cocos2d-x CCNode类
CCNode是个很重要的基类,没有理由不把它搞一搞。首先看下类结构图:它几乎是所有类的基类,官方注释如下:CCNode是主要元素。任何一个能被绘制或者包含能被绘制的东西都是一个CCNode。最常用的CCNode有:CCScene,CCLayer,CCSprite,CCMenu.一个CCNode的主要特性包括:1.他们能够容纳别的CCNode节点,别如能add
2013-08-10 13:53:35 1018
转载 cocos2d-x与ios内存管理
一,IOS与图片内存在IOS上,图片会被自动缩放到2的N次方大小。比如一张1024*1025的图片,占用的内存与一张1024*2048的图片是一致的。图片占用内存大小的计算的公式是;长*宽*4。这样一张512*512 占用的内存就是 512*512*4 = 1M。其他尺寸以此类推。(ps:IOS上支持的最大尺寸为2048*2048)。二,cocos2d-x 的图片缓存Cocos2d-x
2013-08-10 13:50:12 681
转载 CCTextureCache 和 CCSpriteFrameCache
CCTexture2D* cache =CCTextureCache::sharedTextureCache()->addImage("hero.png"); 首先CCTexture2D是一个纹理贴图CCTexture2D* cache =CCTextureCache::sharedTextureCache()->addImage("hero.png"); CCSprite* spri
2013-08-10 11:52:45 5146
转载 Linux SVN 常用命令
1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co 2、往版本库中添加新的文件svn add file例如:svn addtest.php(添加test.php)svn add *.php(添加当前目录下
2013-08-10 11:40:26 598
转载 Eclipse SVN 解决冲突
Eclipse中的svn冲突解决办法:1. 点击提交,报错——‘SVN提交’has encountered a problem.2. 选中无法提交的文件,点击更新操作。多出三个文件,分别是:“.mine”“r(xxx+1)”“r(xxx)”其中xxx为版本号。“.mine”是我要提交的文件,“.r(xxx)”是我是在这个版本文件基础上修改后产生冲突的。“r(xx
2013-08-10 11:37:49 5950
转载 SVN 冲突解决
解决冲突Resolving Conflicts有时候,你从仓库更新文件时会发生一些冲突。当两个或更多开发人员对同一个文件的某几行做了修改,就会产生冲突。因为Subversion对你的项目一无所知,他会把冲突留给开发人员来解决。只要冲突产生了,你就应该打开有问题的文件,然后找到以“ your changes======= code merged from reposi
2013-08-10 11:35:05 865
转载 Linux创建守护进程
创建守护进程创建子进程,父进程退出 这是编写守护进程的第一步。由于守护进程是脱离控制终端的,因此,完成第一步后就会在Shell终端里造成一程序已经运行完毕的假象。之后的所有工作都在子进程中完成,而用户在Shell终端里则可以执行其他命令,从而在形式上做到了与控制终端的脱离。 在Linux中父进程先于子进程退出会造成子进程成为孤儿进程,而每当系统发现一个孤儿进程是,就会自动由1号进程
2013-08-07 22:52:37 762
转载 linux解压缩
<br />tar<br />-c: 建立压缩档案<br />-x:解压<br />-t:查看内容<br /> -r:向压缩归档文件末尾追加文件<br /> -u:更新原压缩包中的文件<br />这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。<br /><br /> -z:有gzip属性的<br /> -j:有bz2属性的<br /> -Z:有compress属性的<br /> -v:显示所有过程<br
2011-05-25 21:19:00 488
转载 抽象工厂
<br />有几点需要明确:<br />1. 客户端按族来创建产品(通过类图,可以看到)而工厂方法(简单工作)所对应的产品,是没有产品族的概念的,<br /> 或者说,不是按产品族(产品功能)来创建产品的。<br />2. 这些产品不能抽象到一个接口或抽象类中<br />这是,需要使用抽象工厂来完成产品的创建。<br />在以下情况下应该考虑使用抽象工厂模式:一个系统不应该依赖于产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的。同属于同一个产品族的产品是在一起时用的,这一约束
2010-12-29 14:12:00 557
原创 工厂方法模式
一 、工厂方法(Factory Method)模式 工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。二、 工厂方法模式角色与结构 抽象工厂(Creator)角色:是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口。 具体工厂(Concret
2010-12-27 13:27:00 489
转载 简单工厂模式
<br />简单工厂模式UML图<br /><br /> <br />JAVA代码<br />Operation类<br />public abstract class Operation { private double numberA; private double numberB; public double getNumberA() { return numberA; } public void setNumberA(double numberA) { this
2010-12-26 15:41:00 560
原创 printf输出格式
%a 浮点数、十六进制数字和p-记数法(C99)<br />%A 浮点数、十六进制数字和p-记法(C99)<br />%c 一个字符 <br />%d 有符号十进制整数 <br />%e 浮点数、e-记数法<br />%E 浮点数、E-记数法<br />%f 浮点数、十进制记数法 <br />%g 根据数值不同自动选择%f或%e.<br />%G 根据数值不同自动选择%f或%e.<br />%
2010-12-16 19:47:00 744
转载 C#委托
<br />今天看到一个讲委托讲的通俗易懂的文章,记录之<br />出处<br />http://www.cnblogs.com/cntour365/archive/2008/08/29/1279757.html<br />委托和事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅
2010-10-08 14:30:00 475
转载 C语言链表
<br />#include<stdio.h><br />typedef struct LNode<br />{<br /> int data;<br /> struct LNode *next;<br />}LNode,*LinkedList;<br />LinkedList InitLinkedList(LinkedList L) //初始化单链表<br />{<br /> L=(LinkedList)malloc(sizeof(LNode));<br /> L->next=NULL;<br />
2010-09-27 17:23:00 507
转载 Java 工厂模式
<br />java工厂模式一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说"开奔驰车!",坐上Bmw后他说"开宝马车!",坐上Audi后他说"开奥迪车!"。你一定说:这人有病!直接说开车不就行了?! 而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的!幸运的是,这种有病的现象在OO语言中可以避免了。下面以Java
2010-07-27 22:02:00 593
转载 Java 状态模式
一个对象有多种状态,在不同的状态下,同一种方法有不同的行为。如果用swich-case语句,将有大量的条件分支和逻辑代码混在一起。状态模式将每个状态封装到一个独立的类中,利用多态性使得不同状态下同一种方法表现不同的行为。状态模式的UML图如下:星际中人族的机枪兵Marine有两种状态:普通状态和打了兴奋针后的状态,两种状态下机枪兵的开枪频率是不同的,我们用状态模式来实现机枪兵的fire()方法。首先定义抽象状态State接口,这个接口指定了机枪兵的fire行为:public interface St
2010-07-27 21:08:00 3389 1
转载 java 代理模式
什么叫代理呢,网络中有各种各样的代理,比如我们上网有时候用代理服务器。你通过这样上网就是使用了代理上网。 再举个通俗的例子,你想找某局长帮你做一件事情,但局长官位显赫,你又不能轻易见着,你就想到了找他的秘书,通过她传话给局长,这样你就等于请他的秘书帮你办成了那件事。秘书为什么就可以找到局长呢,因为秘书和局长之间有一定的关系。这里产生了四个对象:你、秘书、局长、秘书-局长(关系)。 JAVA中同样有代理关系,我们叫做代理模式。代理模式的作用是:为其他对象(局长)提供一种代理
2010-07-13 21:31:00 579
转载 单例模式 饿汉式 懒汉式
1、饿汉式 package singleton; /** * 饿汉式单例 * */ public class HungrySingleton { /**jvm保证instance只被初始化一次*/ private static HungrySingleton instance = new HungrySingleton(); /**阻止外部使用new实例化对象*/ private HungrySingleton(){ } /** * 获取实例 * @return 唯一的insta
2010-07-10 21:26:00 1158
转载 父类引用指向子类对象
父类引用指向子类对象从对象的内存角度来理解试试.假设现在有一个父类Father,它里面的变量需要占用1M内存.有一个它的子类Son,它里面的变量需要占用0.5M内存.现在通过代码来看看内存的分配情况:Father f = new Father();//系统将分配1M内存.Son s = new Son();//系统将分配1.5M内存!因为子类中有一个隐藏的引用super会指
2010-05-29 10:09:00 1094
转载 java内存分析
在JAVA中,有六个不同的地方可以存储数据: 1. 寄存器(register)。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 2. 堆栈(stack)。位于通用RAM中,但通过它的“堆栈
2010-05-29 09:52:00 1231
转载 java 集合类
集合类说明及区别Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collect
2010-05-26 08:41:00 627
转载 Collection List Set和Map用法与区别(转)
Collection List Set和Map用法与区别(转) labels:Collection List Set和Map用
2010-05-23 10:16:00 11225
转载 java 抽象类与接口的区别
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和i
2010-05-22 09:31:00 696
转载 乐观锁与悲观锁
文章转自网上锁( locking ) 业务逻辑的实现过程中,往往需要保证数据访问的排他性。如在金融系统的日终结算 处理中,我们希望针对某个 cut-off 时间点的数据进行处理,而不希望在结算进行过程中
2010-04-18 20:33:00 446
原创 java static final
Java关键字final、static使用总结王维树2009-05-07 12:36Java关键字final、static使用总结 常看很多入门鸟们在final 和static运用上感到迷茫,现总结一下final和static的运用方法,希望对大家有帮助。一、final 根据程序上下文环境,Java关键字final有“无法改变”或者“终态”的含义,它可以修饰非抽象类、
2009-12-08 17:58:00 620
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人