- 博客(266)
- 资源 (8)
- 收藏
- 关注
原创 NGUI UICamera理解
关于UICamera的讲解,网上内容真是一搜一大堆,一两篇博客转来转去,看着头疼,自己看了下UICamera的源码,结合各种博客的讲解,记录下自己对这个重要脚本的理解,首先说下该脚本的作用。UICamera是负责处理所有关于NGUI事件的,具体包括如图(当前版本是3.12.1,各版本略有不同)/// <summary>/// This script should be...
2018-09-07 16:02:00 1257
原创 NGUI自带各种脚本组件整理
1、TypewriterEffect:打字效果2、UIDragDropItem:普通拖拽效果3、UIDragObject:有惯性的拖拽效果4、WindowDragTilt:拖拽过程中左右摆动的效果5、LagPosition:控制拖拽速度,它可以实现一个更平滑的移动曲线。并且可以调节速度5、UIColorPicker:色彩值选取6、SetColorPickerColor:根据...
2018-09-06 20:11:30 876
原创 NGUI 按钮事件的几种监听方式
一般我们在做游戏开发过程中都会遇到需要使用按钮的时候,通过点击按钮来实现某些需求,比如开始游戏,请求好友列表等等,今天我们就NGUI下按钮的几种响应方式做出总结:一、直接响应我们可以直接在当前对象的脚本上实现OnClick方法如下:当然了,我们也可以将按钮响应指向当前脚本的其他方法(必须是public属性下方法,不然不可见)缺点:不直观,效率比较低二、使用SendMes...
2018-09-06 18:20:02 942
原创 Unity 函数activeInHierarchy和activeSelf区别
注释如下:根据注释,引擎已丢弃active用法,并推荐我们使用activeInHierarchy和activeSelfactiveInHierarchy(read only只读)表示gameobject在场景中的是否显示,也就是说要使这个值为true,这个物体及其所有父物体(及祖先物体)的activeself状态都为true。activeSelf(read only只读)代表gam...
2018-09-05 20:35:03 19635 2
转载 unity tween(动画)
在Unity3D中可以使用自带的Animation制作任意形式的动画,不过我们这篇笔记主要是学习和使用NGUI提供的Tween动画。NGUI提供的Tween库功能较为简单,主要是用来实现NGUI自身需要的一些缓动效果,同时我们也可以使用NGUI的Tween来实现一些简单的动画效果。Tween组件我们选中添加到舞台的任意UI组件右键就能看到添加Tween的菜单,如图:我们通过选择添加...
2018-09-05 20:01:49 10019
原创 Canvas Group使用总结
关于Canvas Group的官方文档:https://docs.unity3d.com/Manual/class-CanvasGroup.htmlCanvas Group组件可以用来控制一组UI下的每个元素的属性参数:Alpha:该组UI元素的透明度。需要注意,每个UI最终的透明度是由此值和自身的alpha数值相乘得到。Interactable:是否需要交互(勾选则可交互),...
2018-09-05 13:45:30 5244
转载 Unity StartCoroutine 中 yield return 总结
Unity 中协程是个非常强大的功能,其作用主要是用于游戏中的延时调用或者执行一连串的有时间间隔的事件流程,例如剧情对话等。 看过几篇大佬的文章后,我简单总结了几点协程相关的知识点,旨在加深记忆,同时为初学者解惑。 本篇总结没有截取测试代码,不过总结的内容并不深入,建议读者亲自调试一下,印象会更加深刻。 1.协程与线程 ...
2018-09-05 11:54:04 672
原创 Unity strangeioc框架初识
最近项目中用到这个架构,刚好学习下,网上看了很多资料,参差不齐,对于刚接触的人来说本不太容易,通过在几天的学习与网上资料的翻阅整理下学习心得。网上有英文文档,地址:http://strangeioc.github.io/strangeioc/TheBigStrangeHowTo.htmlstrangeioc是一个超轻量级和高度可扩展反转(IOC)框架,专门为c#和Unity编写,它是基于MVC...
2018-08-29 17:18:44 1316
原创 字符串拷贝操作函数原型实现
字符串拷贝函数char * strcpy(char *dst,const char *src) { if((dst==NULL)||(src==NULL)) return NULL; char *ret = dst; //[1] while ((*dst++=*src++)!='\0'); //[2] return ...
2018-05-17 14:17:51 635
转载 C++中placement new操作符(经典)
placement new是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。它的原型如下:void *operator new( size_t, void *p ) throw() { return p; } 首先我们区分下几个容易混淆的关键词:new、operator...
2018-05-17 08:27:39 200
转载 C++中placement new操作符(经典)
placement new是重载operator new的一个标准、全局的版本,它不能被自定义的版本代替(不像普通的operator new和operator delete能够被替换成用户自定义的版本)。它的原型如下:void *operator new( size_t, void *p ) throw() { return p; } 首先我们区分下几个容易混淆的关键词:new、operator...
2018-03-17 12:32:16 198
转载 base编码解码原理
一. Base64编码由来 为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就不能通过邮件传送。这样用途就受到了很大的限制,比如图片二进制流的每个字节不可能全部是可见字符,所以就传送不了。最好的方法就是在不改变传统协议的情况下,做一种扩展方案来支持二进制文件的传送。把不可打印的字符也能用可打印字符来表示
2017-11-07 15:33:20 5940
原创 快速求平方根算法
对于一个整数求解其平方根可以使用“二分法”和“牛顿法”。二分法算法:给定精确度ξ,用二分法求函数f(x)零点近似值的步骤如下:1 确定区间[a,b],验证f(a)·f(b)2 求区间(a,b)的中点c.3 计算f(c).(1) 若f(c)=0,则c就是函数的零点;(2) 若f(a)·f(c)(3) 若f(c)·f(b)(4) 判断是否达到精确度ξ:即若|a-
2017-10-04 11:10:15 12447
转载 利用颜色混合ccBlendFunc实现遮罩效果
每一次完成一个学习完成一个功能,过了一段时间忘记当初是如何理解并实现的,因此就想记录下来以后顺手回来翻看对于颜色混合的解释,网上已有大神做了解释,这里就直接拿来使用了,概念如下1、概念 “混合”是指两种颜色的叠加方式。在新图片将要渲染画到屏幕上的时候,将用在新图片中的红、绿、蓝和透明度信息,与屏幕上已经存在的图片颜色信息相融合。 说的具体一点,就是把某一像素位置上原来的颜色和将要画上去的颜色...
2017-06-26 15:50:42 1917
转载 【渲染】解决三维出图黑白边缘溢出问题:直通(STRAIGHT)与预乘(PREMULT)ALPHA剖析
昨天我录了一期视频讲解决模型高亮边缘锯齿问题的。今天在群里跟朋友们讨论,结果有人丢出一个文档说是讲的内容有类似。我打开一看,我去,这文档内容写的确实赞,内容深刻,讲解深入浅出,鞭辟入里;而且有一种莫名的熟悉感。结果看到最后的插图我才发现,这篇文章不正是我自己写的吗?连发在哪里都不记得了。这感觉实在奇妙。即熟悉又陌生。不过话说回来,这些年我还是鼓捣出不少很有质量的知识分享的。这篇文章的内容确
2017-03-10 16:51:19 3752
原创 ios下测试app是否兼容ipv6
自2016年6月开始,苹果要求所有提交审核的项目必须兼容IPv6,如果不兼容,将会被拒。因此我们需要在自己的app上线之前做下测试本文介绍的方法是利用一部iPhone手机的热点共享进行IPv6环境的搭建。 首选我们需要mac或者黑苹果一台、两台iPhone机,其中一部已安装你要测试的app,以及一根连接线 测试步骤如下:一、将手机链接连接到电脑、并打开手机个
2016-12-02 13:19:09 1864
原创 关于ipa包上传到AppStore时错误汇总(持续更新)
1、ERROR ITMS-90474ERROR ITMS-90475 原因以及处理方案: 应用适配ios9的ipad的分屏导致,在工程中勾选下图中图示选项。 2、ERROR ITMS-90209 原因以及处理方案: 之前因为这个问题纠结了好久,网上的说法也是众说纷纭,什么删除了证书文件之后重新安装、第三方sdk中含有x86
2016-11-09 17:48:12 1834
原创 生成安卓证书keystor命令文件
正式打包发布Android的apk应用,需要先选择或新建一个数字证书,即keystore文件,生成数字证书的常用方法有两:一是利用eclipse生成,二是在命令行中生成,下面我们来介绍如何在命令行中生成Android的数字证书。1、首选需要安装jdk环境(这里默认已安装) 因为Android的数字证书keystore文件的生成是用了Java的数据证书管理工具Keyto
2016-08-25 15:04:28 15370
转载 ios app提交指南-协议、税务和银行业务
App通过审核时,选择的是手动发布,想着等到自己生日那天来发布,当做留个纪念,结果生日当天发布时,由于App属于收费应用,还需要填写协议、税务和银行信息,结果又急急忙忙地去找了下这方面的资料,现在把整个提交的过程给大家分享一下。PS:如果是免费应用则可以跳过这些。一、登录iTunes Connect 1、登录iTunes Connect 2、进入协议、税务和银行业务页面
2016-07-27 18:18:58 1300
原创 ios 充值测试
对于app的充值测试,一般我们要么是建立测试服来测试充值,另一种是在苹果开发平台iTunes Connect创建沙箱技术测试员,其实就是一个测试账号为方便以后翻阅现做下简单记录,打开开发这网页,登录账号,在用户职能下选择沙箱技术测试员,如图上图中1、2处填写测试人员姓名,可以随意填写一个名字,3、4为充值 时需登录AppId账户,密码5、密码提示问题和答案,后面的出生日期随便填
2016-07-20 14:55:09 2770 1
原创 ios创建证书文件
在处理本文中这些操作之前你得有一个开发者账号(可以从苹果官网申请)1、打开钥匙串,在本地创建证书csr文件CSR文件:生成证书的过程中,有一步是需要我们上传CSR文件的。为什么必须要上传它?CSR文件是用于换取证书的公钥文件,导出CSR这个过程其实就是电脑向证书机构申请凭证的过程。证书是你用电脑制作的并且颁发给你的电脑的。但是这台电脑是否具有制作证书的能力,就是要这个CSR文件来凭证。
2016-07-19 20:54:44 557
原创 关于apk提交谷歌返回OpenSSL、libpng安全漏洞问题的解决方案
如果我们游戏中所用的cocos2d-x版本不高于2.2.6(我们当时使用的是这个版本),在提交apk到谷歌时就会看到如下类似的警告问题图中第一个问题原因是我们使用的libcurl的版本过低,有安全漏洞,因此我们只需要下载高版本的库文件直接覆盖就好所覆盖文件目录为:cocos2dx\platform\third_party\android\prebuilt\libcurl\l
2016-07-09 14:37:46 4454 12
原创 qq互联安卓sdk接入
每次新接触一个第三方sdk,根据官网文档接入完成之后,总是会出现各种各样的问题,为此做一下记录,方便有相同需求的朋友。一、配置sdk到工程 1、将从官网下载的库文件open-sdk.jar、mta_sdk_x.x.x.jar加入到工程并添加到编译路径中。具体的操作步骤为:选中open-sdk.jar,右键菜单中选择Build Path, 选择Add to Build Path,如下图所示
2016-05-16 15:57:10 5396
原创 安卓项目中接入支付宝(有补充)
每次接手一个新的任务后,就是各种查资料,各种出错,还好,最后终于完成了正常支付。先理一下支付宝支付的流程:这里我们从第二步说起: 2.调用支付接口,此消息就是本接口所描述的开发包提供的支付对象PayTask,将商户订单信息传进pay方法唤起支付宝收银台第三步: 手机支付宝支付开发包将会按照商户App提供的参数发送支付请求第五步: 异步发
2016-04-01 16:11:11 1610
原创 tableView又遇到高亮选中状态混乱的问题了
代码如下: bool HelloWorld::init(){ CCTableView* tableView = CCTableView::create(this, CCSizeMake(450, 420)); tableView->setDirection(kCCScrollViewDirectionVertical); tableView->setAnchorPoint(ccp(0,
2016-03-31 11:05:41 1442 1
转载 浅谈C/C++的浮点数在内存中的存储方式
任何数据在内存中都是以二进制的形式存储的,例如一个short型数据1156,其二进制表示形式为00000100 10000100。则在Intel CPU架构的系统中,存放方式为 10000100(低地址单元) 00000100(高地址单元),因为Intel CPU的架构是小端模式。但是对于浮点数在内存是如何存储的?目前所有的C/C++编译器都是采用IEEE所制定的标准浮点格式,即二进制科学表示法
2015-07-07 11:51:52 443
原创 关于进度条的使用理解(待续)
先定义一个进度条 Sprite* sp = Sprite::createWithSpriteFrameName("pvpStoneProgress.png"); m_progress = ProgressTimer::create(sp); addChild(m_progress, 100); m_progress->setType(ProgressTimer::T
2015-06-30 14:57:45 490
转载 cocos2dx-3.2 ClippingNode 遮罩
可以根据一个模板切割图片的节点--ClippingNode。这个类提供了一种不规则切割图片的方式,在这种方式以前,我们可以使用纹理类自带的setTextureRect函数来切割矩形区域,而新特性中提供的ClippingNode最大的不同之处就是裁减将不仅仅局限于矩形,可以根据任何形状进行裁减,而你要做的只是给一个“裁减模板”,首先来看这个类的常用函数(需要说明的是,这里介绍的函数只是这个类
2015-02-09 17:15:05 776
原创 objective-c与cocos2d-x的互相调用实现获取麦克风音量大小
为了在游戏中增加一些效果,即玩家吹口气对敌人造成伤害等等之类的功能,需要实施的获取ios设备的麦克风音量,为此,在网上找了好多资料,终是未能满足要求,最后在这位朋友扬名的博客上找到了对应的实例,同时也感谢扬名的分享,这里给出链接http://www.cnblogs.com/pure/archive/2013/03/10/2933440.html,望各位朋友共同学习。头文件如下:#impor
2014-12-04 14:12:17 2601
原创 cocos2d-x 3.3 Sprite3D人物换装代码解析
Sprite3D与Sprite相似,只不过它是3D的。你可以使用内置的create函数初始化一个Sprite3D对象。auto sprite = Sprite3D::create(fileName);sprite->setScale(4);sprite->setRotation3D(Vec3(0,0,0));目前 Sprite3D 支持以下三种格式obj:obj是通过3
2014-12-02 14:55:47 4023 3
转载 cocos2d-x网络编程
在这里我整理了以往自已用的一些关于HTTP和Socket编程资料,当然也有一些自已对网络编程的理解首先说说HTTP与Socket概念性的一些认识:Socket通常称为“套接字”,用于描述IP地址和端口。套接字类型分为:1>,流式套接字:提供面向连接,可靠的数据传输服务,数据无差错,无重复的发送,且按顺序接收,基于TCP协议2>,数据报式套接字:提供无连接服务,数据以独立形式发关
2014-11-27 16:04:50 717
原创 cocos2d-x 3.0 为字体添加黑边和阴影
zhi Size shadeOffSet(5.0,5.0); //定义字体 FontDefinition shadeTextDef; shadeTextDef._fontSize = 100; shadeTextDef._fontName = std::string("楷体"); shadeTextDef._fontFillColor
2014-08-18 09:49:18 2876
转载 数据结构CCDictionary
CCDictionary在cocos2d-x中被大量的应用,比如CCTexureCache,CCSpriteFramCache等等。1.实现原理1.1.uthashCCDictionary是使用uthash实现的,而过时的CCMutableDictionary则是使用STL实现,就效率而言CCDictionary至少提升了两倍,而且CCDictionary并没有
2014-06-11 17:22:47 604
转载 如何优化cocos2d/x程序的内存使用和程序大小
再次感谢原创者:Steffen Itterheim,原创博客原文地址:http://www.learn-cocos2d.com/2012/11/optimize-memory-usage-bundle-size-cocos2d-app/译者:在我完成第一个游戏项目的时候,我深切地意识到“使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题
2014-05-28 20:02:52 1350
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人