- 博客(92)
- 资源 (20)
- 收藏
- 关注

原创 Unity3D开发(九):Unity3d流光效果
游戏开发论坛:Hello Game游戏开发群:201276069之前曾经注意过Material中纹理的属性都有Tiling和Offset,但没有深究过其用途,今天才知道竟然可以利用Offset做uv动画,从而完成各种有趣的动画,比如流光效果!流过效果即通常一条高光光在物体上划过,模拟高光移动照射物体的效果,之前是使用Shader每帧传递一个Offset值,修改高光纹理采样的uv
2014-02-25 23:12:11
22879
1

原创 Unity3D开发(八):NGUI之UILabel颜色渐变效果
照例打个广告,欢迎大家去论坛讨论,点击打开论坛1. UILabel简介(1)UILabel支持类型a.图字:是指根据某些工具,将游戏中需要用到的文字渲染到一张纹理上,并附其纹理信息(包括 id值,尺寸,间距等)。b.字库字:是指直接载入ttf等字库文件,根据从ttf文件中读取的数据,生成纹理并渲染。(2)UILabel基本属性 Font类型:上述介绍的图字和字库
2014-02-11 08:16:59
20552

原创 Unity3D开发(七):NGUI之UICamera控制触摸,鼠标事件
先给论坛做个广告:点击打开链接1. UICamera 功能介绍主要包括UI事件的监听,分发,覆盖范围为此Camera渲染的所有GameObject。事件源包括:鼠标,触摸,键盘,手柄。事件包括:悬停,按下/抬起,选中/取消选中,点击,双击,拖拽,释放,文本输入,Tips显示,滚轮滑动,键盘输入。 2. UICamera 实现流程(1)属性 Event T
2014-02-07 15:32:10
31128
1
原创 Unity3D开发(六):基于2d Tool Kit 精灵合图,动作生成工具
2d Tool Kit 是一款出色的基于unity3d 开发2d游戏的工具,提供了丰富的编辑器工具和教程,是基于unity3d开发2d游戏的不二之选。(PS:建议在unity3d 4.3版本(Native2D)没有稳定之前或者对新技术还不是很熟悉的情况下,可以考虑继续使用2d Tool Kit)。 1. 需求2d游戏中最重要的概念就是Sprite了,而制作一般2d游戏都离不开Spr
2014-01-20 20:23:38
11050
原创 Unity3D开发(五):Unity3D 4.x 使用Mecanim实现连击
Unity3D 4.x 版本之后提供了一种新的动画机制Mecanim,虽然目前还支持之前的Animation,但看到Unity3D 4.3 预览版里Sprite的动画也是基于Animator的,可知Mecanim将会是以后动画播放的趋势!Mecanim是一种基于状态机的结构,不同的状态表示一个动作(或者多个动作融合,或者一个子状态机),状态之间使用一种称为Transition的组件关联,Tra
2013-10-18 16:30:19
35366
3
原创 Unity3D开发(四):NGUI纹理九宫格拉伸
不论是游戏中的UI,还是应用中的UI,纹理九宫格拉伸都是必不可少的,因为采用这种拉伸方式,可以最大化的节省纹理资源,还能保证良好的表现效果!1.原理把纹理用4条线分割成9部分(如上图),通过观察可以发现,5是最规则的形状(矩形),其次是2,6,8,4(矩形,但是和四个角有公共边),最后是四个角1,3,9,7(圆角矩形)规则的图形在拉伸之后的效果是比较好的,如果是
2013-10-10 23:14:20
29702
原创 Unity3D开发(三):场景管理插件Scene Manager
Unity3d中提供了场景Scene的概念,Scene就是一组相关联的游戏对象的一个集合,通常每个集合就是一个场景,但是也有可能只是一个场景的一部分!场景中的游戏对象是任意的,可以是HUD的UI组件,场景地图,模型等等Unity3d提供了一些切换场景的规则和方法(例如在切换场景时不销毁某些GameObject,同步,异步加载场景API),但是并没有提供一个通用的场景管理的模块(想要做到“通
2013-10-05 11:11:23
49994
4
原创 Unity3D开发(二):NGUI之UIButton"禁用"状态时置灰
NGUI中的Button几乎是最常用到的控件之一,并且可以组合各种组件(比如UIButtonColor,UIButtonOffset,UITweenxx),方便设置Button的各种状态下的属性,几乎可以满足我们的所有需求。但是对于当Button的isEnabled属性设置为false时,根据设置的disableColor属性设置不可点击时的颜色时,虽然我们设置的灰色,但并不是我们想象中的样子
2013-09-30 18:51:55
39018
1
原创 Unity3D开发(一):NGUI之UIRoot屏幕分辨率自适应
NGUI在Unity3D游戏开发中非常常用,而NGUI对于每一个UI场景,都是以一个UIRoot为UI游戏对象树的根的,那么这个UIRoot是起什么作用的呢?先简单看一下UIRoot中的基本属性UIRoot游戏对象的属性只有4个,分别是缩放规则,手动高度,最小高度和最大高度而正是这4个属性,将影响整个UI场景中整体的缩放比例,当设置好这4个属性之后,UIRoot游戏对象的相对缩放值
2013-09-15 21:56:58
57908
1
原创 Cocos2d-x学习(二十六):cocos2d旋转矩阵推导
cocos2d中的旋转是很常用的,其实现原理是根据变换计算出变换矩阵,也就是将所要执行旋转操作的物体的物体坐标系进行旋转,再还原到世界坐标系的过程,至于还原到世界坐标系的操作,则需要用到矩阵这个数学工具,根据旋转的角度,得到旋转的矩阵,将矩阵右乘物体上的点,得到的便是世界坐标系中的点信息。上图为物体坐标系,初始状态与世界坐标系相同,即坐标系xoy,在xoy坐标系中任意一点v(x, y)
2013-02-22 23:05:00
11014
原创 Cocos2d-x学习(二十五):ubuntu 配置cocos2d-x
今天在ubuntu下编译了一下cocos2d-x(是linux版本的,不是android版本),并且在eclipse中配置了一下,在cocos2d-x官网上也看到了相关介绍,竟然发现了一个配置的小坑,可能是因为版本的原因,sqlite3库没有添加到TestCpp中。1.工具和库eclipse for c++cocos2d-x 2.1.1g++ (命令:sudo apt-get in
2013-02-16 23:19:36
11476
转载 Ubuntu Eclipse配置OpenGL
转载地址:http://blog.sina.com.cn/s/blog_6923201d0100wzye.html本文假设读者已经在ubuntu下配置好了gcc/g++环境,并使用eclipse开发opengl程序在ubuntu终端下运行以下命令,安装opengl所需要的库文件$ sudo apt-get install build-essential
2013-02-16 10:18:41
4717
转载 Ubuntu Unity 创建桌面快捷方式
转载地址:http://www.cnblogs.com/localhost/archive/2012/04/14/2447748.htmlUnity的发展越来越好了,个人感觉从Ubuntu12.04开始,Unity终于可以说是可以用了。接下来就讲讲在Unity中创建快捷方式并添加到Launch Panel。拿eclipse举例,从eclipse.org下载好eclipse后,解压到
2013-02-16 09:25:49
3573
原创 Cocos2d-x学习(二十四):vs2010使用vld检测内存泄露
cocos2d-x不仅可以做到跨平台运行,还可以做到跨平台编译调试(当然只是编译对应平台下的应用了)。众所周知,cocos2d-x是用c++编写的,而c++中最让人头疼的莫过于指针和内存泄露的问题,在windows下,cocos2d-x支持在vs下开发,这样,平时写win32项目的开发工具就可以用在cocos2d-x开发上了,善哉!今天就介绍一个检测内存泄露的工具,Visual Leak Dete
2013-02-06 23:48:30
20449
1
原创 Cocos2d-x学习(二十三):Base64解码
使用过Tiled的朋友应该都有所了解,Tiled生成的tmx格式的文件其实就是xml,唯一特殊的地方就是tmx文件中都会有一个或者多个"data"的节点,用来存放Tiled的块数据!类似于这样的格式 eJztmNkKwjAQRaN9cAPrAq5Yq3Xf6v9/nSM2VIbQJjEZR+nDwQZScrwztoORECLySBcIgZ7nc2y4KfyWDLx+Jb
2013-01-20 01:01:46
9667
原创 Cocos2d-x学习(二十二):cocos2d-x中CCScale9Sprite的另一种实现
cocos2d 2.0之后加入了一种九宫格的实现,主要作用是用来拉伸图片,这样的好处在于保留图片四个角不变形的同时,对图片中间部分进行拉伸,来满足一些控件的自适应(PS: 比如包括按钮,对话框,最直观的形象就是ios里的短信气泡了),这就要求图片资源的中间部分是纯色或者是简单的渐变了!1.cocos2d中九宫格CCScale9Sprite的实现(1)原理cocos2d的实现非常
2012-12-08 19:40:12
23712
原创 Cocos2d-x学习(二十一):cocos2d-x引擎结构
在不同平台下,cocos2d-x的入口是不一样的,在win32平台,程序是从_tWinMain()开始的,可以在每一个cocos2d-x的程序中的main.cpp中找到。1.程序入口(1)在_tWinMain()中,创建的AppDelegate类的对象(PS: AppDelegate继承于CCApplication,在构造方法中,初始化CCApplication单例类的唯一实例
2012-12-08 10:53:53
14348
原创 Algorithm(三):快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。c++代码实现int partition(int* arr
2012-11-28 10:50:03
3695
原创 Algorithm(二):归并排序
归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。归并排序 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有
2012-11-15 09:22:27
3045
原创 Algorithm(一):插入排序
插入排序是排序中效率比较低,但是实现最简单的一种算法了!算法简介:有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。
2012-11-10 23:24:03
1836
原创 Cocos2d-x学习(二十):cocos2d中的容器CCArray
cocos2d-x移植于cocos2d-iphone,cocos2d-iphone的架构和设计更符合Objective-C的语法,所以cocos2d-x在移植的过程中,也引入了CCArray的概念!CCArray在设计和使用上更符合Objective-C的风格,类似于Objective-C中的NSArray!1. CCArray只是提供了一个面向对象的封装类其继承于CCObje
2012-11-08 22:30:30
21068
原创 Cocos2d-x学习(十八):Tiled妙用
Tiled是一款很优秀的地图编辑器,一般可以用在90°,45°角的2D游戏地图,并且被很多引擎支持,包括cocos2d,AndEngine等等!当抛开这种传统的用法,在朋友的介绍下,我发现了一种好玩的用法:编辑横版游戏的道具!其实归根结底还是编辑地图!上图显示!(密集综合症的网友请谨慎看图!)不知道各位从中可以想象到什么用途,反正我想到了jetpack的关卡设计在c
2012-10-28 22:47:09
6436
转载 Cocos2d-x学习(十九):iOS6中无法正常游戏横屏的解决方案
转载地址:http://www.himigame.com/iphone-cocos2dx/1000.html1.先在项目的ios目录下的AppController.mm文件中的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOpt
2012-10-27 11:40:49
3603
转载 C++中wstring与string相互转化
转载地址:http://www.cppblog.com/kenwell/archive/2008/05/21/50661.html#include std::string ws2s(const std::wstring& ws){ std::string curLocale = setlocale(LC_ALL, NULL); // curLocale = "C";
2012-10-01 15:18:05
5043
转载 一个比较完善的C++ Singleton模式类
转载地址:http://hi.baidu.com/uxufgfwvmhfitzr/item/6fd0b82f49aa1fd5a417b630------------------------------目录------------------------------ 本文的主要内容为: 1、Singleton模式的基类 2、基本的Singleton容器 3、Singlet
2012-09-12 09:24:51
1952
转载 循环删除vector和map中的元素
转载地址: http://www.cppblog.com/zgysx/archive/2006/12/28/16944.html删除所有偶数项,并打印出删除的项1. vector/queue 正确方法1:void erase(vector &v){for(vector::iterator vi=v.begin();vi!=v.end();){if(*vi % 2
2012-09-04 16:16:06
1944
转载 Cocos2d-x学习(十七):Cocos2d-x建工程时避免copy文件夹和库
转载地址:http://www.cnblogs.com/andyque/archive/2011/09/27/2192920.html在上一篇教程中,我们演示了如何使用VS2010来新建一个工程,并且教大家如何一步步解决头文件包含错误、lib库引用错误 及dll链接错误。但是,每次建一个工程都这么费时,岂不是很不爽,而且每个工程都要copy一份cocos2d-x、coc
2012-08-26 19:25:08
2475
原创 Cocos2d-x学习(十四):用cocos2d-x实现MoonWarriors(暂停和恢复的实现)
特别声明:本文所有图片资源来源于MoonWarriors cocos2d-html 开源项目今天搞了半天子弹发射这块,还是没弄完,我打算做一个子弹缓冲池,将所有子弹的图片资源打到同一个图片资源中,用一个CCSpriteBatchNode来绘制,这样在很多子弹的时候,就起到优化的效果了,CCSpriteBatchNode的原理是开启一次opengl绘制,绘制所有子精灵!1
2012-08-01 18:30:58
4625
转载 Cocos2d-x学习(十六):Cocos2d-x内存管理(二)
转载地址:http://blog.youkuaiyun.com/a7833756/article/details/7632199前一篇我们讲到cocos2d-x里的内存管理机制,以及引擎中的自动内存管理机制。一个被自动管理的对象从new出来之后到被放到autoreleasepool那么接下来,对象是如何被引擎自动delete掉的呢?首先我们要知道,cocos2d-x的引擎线程是单线程的,它
2012-08-01 10:54:57
4424
转载 Cocos2d-x学习(十五):Cocos2d-x内存管理(一)
转载地址:http://blog.youkuaiyun.com/a7833756/article/details/7628328前言:c++内存机制,采用new关键字实例化的对象,必须在不使用的时候手动delete掉,否则new的时候开辟的内存就不能被回收,造成内存泄露。我们来举个例子说明一下: 运行 结果,vld工具提示了存在内存泄露:
2012-08-01 10:54:00
3659
原创 Cocos2d-x学习(十三):用cocos2d-x实现MoonWarriors(使用触屏改变飞船位置)
特别声明:本文所有图片资源来源于MoonWarriors cocos2d-html 开源项目今天总结一下触屏事件,做了主流飞行射击类游戏中玩家飞船随玩家的手指的移动改变位置的效果!1.触屏事件的一般步骤如果要使层监听到触屏事件(这里只总结单点触摸),这4个方法是必不可少的// default implements are used to call scr
2012-08-01 07:12:09
5598
原创 Cocos2d-x学习(十二):用cocos2d-x实现MoonWarriors(无限背景滚动的简单实现)
特别声明:本文所有图片资源来源于MoonWarriors cocos2d-html 开源项目之前总结过一次无线背景滚动的实现方法,基本上是基于cocos2d-html版的MoonWarriors的方法实现的,博客地址:cocos2d-x学习(九):cocos2d-x 无限背景滚动其实原理都是类似的,都是通过移动背景图,造成玩家角色移动的假象,而无限背景滚动就是两
2012-07-31 13:11:46
8424
3
原创 Cocos2d-x学习(十一):用cocos2d-x实现MoonWarriors(游戏场景切换和主菜单实现)
特别声明:本文所有图片资源来源于MoonWarriors cocos2d-html 开源项目在cocos2d-html alpha版推出不久,就有一位大神写了一款飞行射击类游戏,MoonWarrior,MoonWarrior cocos2d-html github地址,是用js写的,代码写的很清晰,虽然不是很懂js,但是都是基于cocos2d架构的,所以还是可以看的懂的,加上最近有看了
2012-07-30 18:35:23
10239
原创 Cocos2d-x学习(十):cocos2d-x 2.0版本中CCScrollView的用法
cocos2d-x 2.0版本之后提供了许多控件,其中就包括ScrollView,之前总结过一个简单的ScrollView,但是问题很多,比如必须是全屏,不能是一块区域,而cocos2d-x 2.0中提供的CCScrollView中,是可以设定区域的,CCScrollView做了区域的裁剪glScissor((GLint)screenPos.x, (GLint)screenPos.y, (
2012-07-23 16:01:25
37737
1
原创 Android工程的自动创建,编译并生成apk
参考文档(android官方)http://developer.android.com/tools/projects/projects-cmdline.html#ReferencingLibraryProjecthttp://developer.android.com/tools/building/building-cmdline.html#AutoReleaseMode
2012-07-08 11:42:10
6511
原创 Cocos2d-x学习(九):cocos2d-x 无限背景滚动
最近在学习飞行射击类游戏的一些开发,学到的东西确实不少,比如,无限背景滚动,子弹的缓冲池,面向组件开发等等!今天就来总结一下无限背景滚动的实现!飞行类的游戏都是基于背景的滚动,造成视觉上的假象,认为飞机在飞行,而不是“真正的向前飞”。。。1.原理滚动的原理:设定一个速度,在每次调用update(ccTime dt) 时,就根据速度和dt得到移动的偏移量,因为更新频率很快,所
2012-06-29 15:44:36
15660
原创 Cocos2d-x学习(八):cocos2d-x 2.0 中CCListView的用法
cocos2d-x 2.0 版更新了,把opengl 1.1 替换为opengl 2.0,这个版本只能在iphone 3gs,android 2.2 以上版本才能跑,并且android的模拟器也不支持!这次更新终于更新了几个UI控件,比如Button,Slider,ListView(本来打算自己写个ListView的,这下省事了,看到注释,这里要感谢网龙公司了,当然,还要感谢cocos2d-x
2012-06-07 13:09:28
21971
原创 Cocos2d-x学习(七):cocos2d-x中ScrollView的简单实现
在游戏关卡选择,道具店之中经常会用到类似于ScrollView的控件,之前用AndEngine引擎的时候简单的实现了一个,(AndEngine滑动菜单传送门),考虑到手头的游戏以后也会用到,就先用cocos2d-x简单的实现了一下!原理非常类似,android中的app(比如微博,qq)也是类似的原理!1.设计思路自定义ScrollView继承于CCLayer,固定其每页的大小(i
2012-06-04 16:50:14
29276
5
原创 shell学习(一):统计文本行数脚本
最近突然迷上了shell,虽是新手,但是还是感受到了其功能的强大,写了一个简单的文本行数统计的小脚本,记录一下!功能:统计一个文件或者一个目录下所有文件的所有行数,并根据文件类型的不同而分别记录,比如.cpp,.h,.txt等等,缺点:没有根据文件是否为文本类型文件做判断和处理实现:递归遍历目录主要使用命令:关联数组,函数,参数,cat,wc递归函数:根据传
2012-06-04 09:39:16
5091
原创 Shell命令总结
who 显示当前登陆的用户wc 输出某个“文件”的行,字,字节数cat > file 新建file,并将后续的输入写到file中pgrep 根据程序名获取该进程IDtr str1 str2 将输入中的str1替换为str2变量赋值等号左右不允许有空格,如果值中有空格的话,值需要用引号括起来${#var} 输出var值的长度(字符数)将终端提示行的颜色和长度修改PS1
2012-05-30 20:36:19
1787
android多任务下载并显示Demo
2011-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人