
unity&cocos2dx
文章平均质量分 67
yongtao_liu
移动游戏 游戏
展开
-
Unity 3D中的内存管理
Unity3D在内存占用上一直被人诟病,特别是对于面向移动设备的游戏开发,动辄内存占用飙上一两百兆,导致内存资源耗尽,从而被系统强退造成极 差的体验。 虽然Unity标榜自己的内存使用全都是“Managed Memory”,但是事实上你必须正确地使用内存,以保证回收机制正确运行。如果没有做应当做的事情,那么场景和代码很有可能造成很多非必要内存的占用, 这也是很多Unity开发者抱怨内存占用太大的原转载 2015-05-09 15:00:24 · 387 阅读 · 0 评论 -
Cocos2D-X 设计模式:二段构建模式
所谓二段构建,就是指创建对象时不是直接通过构建函数来分配内存并完成初始化操作。取而代之的是,构造函数只负责分配内存,而初始化的工作则由一组合起来,完成最终对象的构建。因为在《Cocoa设计模式》一书中,把此惯用法称之为“Two Stage Creation”,即“二段构建”。Cocos2D-X 3.0以后的二段构造更纯粹了,它把所有类的构造函数、析构函数以及init方法全部变成protect转载 2015-08-28 14:45:02 · 715 阅读 · 0 评论 -
Cocos2D-X设计模式:单例模式
本系列文章将按照如下思路进行模式挖掘: – 找出某个设计模式的应用场景(类、类结构、对象结构,必要时结合UML类图) – 分析为什么要使用此模式(即设计决策) – 使用此模式的优缺点是什么(任何事务都有两面性,设计模式也不例外) – 此模式的定义及一般实现(这个在GoF的经典书籍里面有) – 在游戏开发中如何运用此模式(自己对于模式运用场景的理解) – 此模式经常与哪些模式配合使用(这个也基本是从G转载 2015-08-28 14:16:20 · 1939 阅读 · 0 评论 -
Cocos2D-X设计模式:外观模式
1.应用场景Cocos2d-x里面有一个非常明显的地方使用了外观模式,它就是SimpleAudioEngine。因为它为CocosDenshion这个子系统的一组接口提供了一个一致的界面,同时定义了一个高层接口,方便客户使用该子系统。对于大多数用户来讲,游戏中操作声音,无非就是播放背景音乐和音效。CocosDenshion这个子系统封装了OpenAL,屏蔽了OpenAL操作声音的低级API。它提供了转载 2015-08-28 15:51:47 · 763 阅读 · 0 评论 -
Cocos2D-X设计模式:防御式编程模式
声明:防御式编程是提高程序代码质量的一种手段,它不能算是真正意义上的模式。但是,这里,我还是要给它冠之以“模式”二字。原因有三:cocos2d-x的框架源代码大量采用了防御式编程技术,用来确保框架的代码质量和稳定性。标题党,引起大家对于防御式编程的重视。特别是当大家给cocos2d-x贡献源代码的时候,更应该要注意保证代码质量。防御式编程非常重要,运用得当可以减少被bug折腾的时间。1.应用转载 2015-08-28 16:05:53 · 427 阅读 · 0 评论 -
cocos2dx 基础知识体系
这是我当时学cocos2dx时的知识点, 笔记是自己总结到word里面了, 没有在博客里面整理, 后面有时间会逐步更新出来;原创 2015-05-24 00:05:58 · 385 阅读 · 0 评论 -
Cocos2D-X设计模式:委托模式
一、前言在讨论cocos2d-x里面的委托模式之前,先来讲讲什么是委托,以及c++里面如何实现委托。委托通常还会跟回调、闭包联系在一起,而委托和委托模式也有一点区别。下面先看看委托模式的例子一个打印机类的委托模式实现:class RealPrinter { // the "delegate"public: void print() { //do something转载 2015-09-02 09:42:22 · 1092 阅读 · 0 评论 -
Cocos2D-X设计模式:中介者模式
1、应用场景谈到中介者模式这个词,我马上就想到了cocos2d-x里面的CCDirector类。这个类除了应用了单例模式,还应用了中介者模式。Why?因为它封装了Scheduler、ActionManager、TouchDispatcher、KeypadDispatcher和Accelerometer这五个对象的交互。它使得这几个对象之间的交互不需要显式地相互引用,使其耦合度变低。当然更多的是使得我转载 2015-09-01 17:31:12 · 583 阅读 · 0 评论 -
Cocos2D-X设计模式: 组合模式
1、应用场景Cocoa编程框架APPKit和UIKit都应用了组合模式,各种各样的View及其派生类组成了一棵树状结构的层级视图,而这里面就应用了组合模式。当然,Cocos2D-x里面的Node组织方式也采用的是这个方法,最终游戏界面中的Nodes也会形成一棵树。说到树,我们马上就会想到树根,树干和树叶。一棵树一般只包含一个根,若干树干和大量的叶子。同时,树干长在树根上,树叶长在树干上。对应于Coc转载 2015-09-01 16:00:28 · 614 阅读 · 0 评论 -
Cocos2D-X设计模式:观察者模式
1、应用场景前面在介绍单例模式的时候,提到了一个类NotificationCenter,它除了应用单例模式以外,还应用了观察者模式。NotificationCenter类是观察者模式中的目标对象,而NotificationObserver则是观察者。(注意目前,cocos2d-x 3.0已经把该类deprecated了,替代方案是使用EventDispatcher的Custom Event来替代)一转载 2015-09-01 17:10:36 · 744 阅读 · 0 评论 -
tolua++入门
tolua++使用SCons进行编译,我们也可以使用自己喜欢的IDE新建一个控制台(Console)工程,然后将源码下bin目录中所有文件加入到工程中,直接编译即可;同样地,新建一个静态库(Static Library)工程,将源码下lib目录中所有文件加入进入,编译即可。当然了,这些工程是需要lua库支持的。 经过上面的步骤,在Windows系统上的话,你会得到tolua++.exe和tolu转载 2015-07-01 18:50:13 · 901 阅读 · 0 评论 -
LuaTinker
LuaTinker的作者是Kwon-il Lee韩国人写的,最新的版本是0.2.C,这个C++ wrapper For Lua能够方便和快捷与C/C++通信,LuaTinker参考了luabind和luaplus的特征写的,虽然没有bindlua和luaplus这本强大和提供很多功能,LuaTinker的实现只有两个文件,但是LuaTinker提供的基本能够满足大部的要求,用户还可以对它进一步的扩充转载 2015-06-25 17:13:34 · 440 阅读 · 0 评论 -
初学lua的几个博客 挺好的
http://cn.cocos2d-x.org/tutorial/lists?id=73&per_page=18 http://www.cnblogs.com/sevenyuan/p/4511808.html http://www.jellythink.com/archives/554 http://eric-weitm.iteye.com/ http://book.luaer.cn/原创 2015-05-31 12:11:22 · 418 阅读 · 0 评论 -
cocos2dx 3.x bindings-generator(Part one)
一、bindings-generator当有一些感觉狂拽炫酷屌的 C or C++ 函数库想加到专案里时,难免会用上 cocos2d-x 自带的 bindings-generator 产出库让 lua 调用。在 3.0 rc0 以前的说明并不像稳定版本这么“比较”多一些,花在 trial and error 上的时间也就相对的多了许多。过去的就说好不提了,单从现在稳定版的简单描述流程:依照 bin转载 2015-08-20 10:06:37 · 1093 阅读 · 0 评论 -
Cocos2D-X设计模式:管理者模式
*管理者(Manager)就是专门负责管理其它类的实例的类,比如Cocoa里面的NSFontManager、NSInputManager、NSFileManager和NSLayoutManager类。此模式和“二段构建模式”一样,也没有出现在GoF的23个设计模式中,但是《Cocoa设计模式》一书中有提及 管理者模式,大多数时候都被实现成一个单例。然后会在程序各个地方被使用到,除非是万不得已,建转载 2015-08-28 14:59:02 · 614 阅读 · 0 评论 -
cocos3.x 优化提升渲染速度
COCOS2DX 3.0 优化提升渲染速度 Auto-batching最近在看COCOS2DX 3.0的Auto-batching合批与Auto Culling动态缩减功能简介 在游戏的绘制渲染中,往往消耗很多资源和内存,当绘制精灵数量越多,游戏的卡顿会很明显,为了优化和提升渲染效率。Cocos2d-x为我们提供了Auto-batching和SpriteBatchNode。 A转载 2015-08-24 15:53:21 · 928 阅读 · 0 评论 -
cocos3.0+ shader
cocos2d的shader都是共用的, 存放在 GLProgramCache 中。 当setGLProgram() 的时候是从GLProgramStateCache 中寻找是否有这个shader的State, 有就返回,这个也是共用的,任意一个GLProgramState修改了, 都会影响到使用这个shader的对象添加shader的方法:先编写shader: (直接复制cocos/rende转载 2015-08-24 15:15:29 · 1053 阅读 · 0 评论 -
lua脚本入门
Lua的最大用途是在宿主程序中作为脚本使用的。Lua 的语法比较简单,学习起来也比较省力,但功能却并不弱。 在Lua中,一切都是变量,除了关键字!I. 首先是注释 写一个程序,总是少不了注释的。 在Lua中,你可以使用单行注释和多行注释。 单行注释中,连续两个减号”–”表示注释的开始,一直延续到行末为止。相当于C++语言中的”//”。 多行注释中,由”–[[“表示注释开始,原创 2015-05-11 16:12:43 · 1129 阅读 · 0 评论 -
Unity中碰撞体和触发器的区别
要产生碰撞必须为游戏对象添加刚体(Rigidbody)和碰撞器,刚体可以让物体在物理影响下运动。碰撞体是物理组件的一类,它要与刚体一起添加到游戏对象上才能触发碰撞。如果两个刚体相互撞在一起,除非两个对象有碰撞体时物理引擎才会计算碰撞,在物理模拟中,没有碰撞体的刚体会彼此相互穿过。 物体发生碰撞的必要条件 两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。原创 2015-05-11 16:51:38 · 3456 阅读 · 0 评论 -
Unity 大牛的开发经验分享
准确地说,代码作为Unity项目里的一种资源,此问题应该扩展到如何组织Unity资源。 - Unity有一些自身的约定,譬如项目里的Editor,Plugins等目录作为编辑器,插件目录等等。知名的插件会自己存放一个目录,譬如NGUI等。所以我们自己的代码,一般目录名会以下划线开头,譬如 “_Scripts”, “_Prefabs”等。 对于场景,文档等目录,用两条下划线,以便他们能排在最顶部。转载 2015-05-11 19:49:30 · 1225 阅读 · 0 评论 -
U3D中的多线程
Unity3D多线程写法:using UnityEngine;using System.Collections;using System.Threading;public class MyThread{public int count;string thrdName;public MyThread(string nam){count = 0;thrdName = nam;}原创 2015-05-13 16:15:41 · 1372 阅读 · 0 评论 -
Unity 学习之路~
unity学习课表~ 、原创 2015-05-14 17:02:34 · 441 阅读 · 0 评论 -
如何防范unity代码被偷!
解密无非就为了 修改游戏功能数据、提取游戏资源、加入自己想加的广告等等加密就是保护游戏资源不被恶意修改 关于Unity C#代码部分的加密,混淆,可以去搜索一下Codeguard这个插件,它可以防止你的代码被反编译。它主要是改名,把你的方法名,方法体名子修改了,变量名修改了。虽然有点弱但是它的优点是比较方便,因为可以在打包的时候自动完成代码混淆的工作。还有几个混淆插件CryptoObfuscato原创 2015-05-17 14:35:11 · 1281 阅读 · 0 评论 -
C++ TinyXml操作
前言 TinyXML是一个开源的解析XML的解析库,能够用于C++,能够在Windows或Linux中编译,使用TinyXML进行C++ XML解析,使用简单,容易上手。 这个解析库的模型通过解析XML文件,然后在内存中生成DOM模型,从而让我们很方便的遍历这棵XML树。 DOM模型即文档对象模型,是将整个文档分成多个元素(如书、章、节、段等),并利用树型结构表示这些元素之间的顺序转载 2015-05-31 09:39:19 · 442 阅读 · 0 评论 -
在github上关注的开源游戏服务器引擎
先记载下来, 以后有时间一定要好好的研究研究,O(∩_∩)OKBEngine http://kbengine.org/ 是一款开源的游戏服务端引擎,使用简单的约定协议就能够使客户端与服务端进行交互,使用KBEngine插件能够快速与(Unity3D, OGRE, Cocos2d, HTML5, 等等)技术结合形成一个完整的客户端。 服务端底层框架使用c++编写,游戏逻辑层使用Python(原创 2015-06-03 21:47:16 · 6576 阅读 · 0 评论 -
shader基础知识
1.unity中配备了强大的阴影和材料的语言工具称为ShaderLab,以程式语言来看,它类似于CgFX和Direct3D的效果框架语法,它描述了材质所必须要的一切咨询,而不仅仅局限于平面顶点/像素着色。2.在unity3d中创建一个Shader:Assets -> Create -> Shader3.创建了Shader就可以应用到各个材质Material中,创建材质:Assets -> Creat转载 2015-05-23 11:25:56 · 561 阅读 · 0 评论 -
untiy注意问题
这个函数按照索引加载关卡。在unity中使用File->Build Settings……菜单可以看到所有 关卡的索引列表。在你能过加载关卡之前你必须将它添加到游戏使用关卡列表中。在 Unity中使用File->Build Settings……并添加你需要的关卡到关卡列表中。 //加载索引为 0 的关卡 Application.LoadLevel (0); 当加载新的关卡时,所有已经加载的游戏物转载 2015-05-23 11:59:01 · 473 阅读 · 0 评论 -
Unity3D事件函数的执行顺序
In Unity scripting, there are a number of event functions that get executed in a predetermined order as a script executes. This execution order is described below:在Unity脚本中,有一些按照预定顺序执行的事件函数,脚本即是按照此顺序执行转载 2015-05-23 11:19:40 · 638 阅读 · 0 评论 -
烘焙的注意事项
一、保证Edit——Render Settings——Ambient Light设置最黑 把默认环境灯光调最暗,防止影响后面的烘焙效果二、保证模型的Rotation属性都为1,Scale属性都为0 减少Unity3D计算,节省资源三、如果觉得模型的边缘锯齿明显,可以打开菜单Edit——Project Settings——Quality 1)把Levels设置成Fantastic 2)把Ant转载 2015-05-23 11:53:05 · 1091 阅读 · 0 评论 -
u3d中脚本的知识点
一 创建和使用脚本 1 概述 GameObject的行为都是被附加到其上面的组件控制,脚本本质上也是一个组件。 在unity中创建一个脚本 ,脚本通过实现一个派生自”MonoBehaviour”的类来与unity的内部工作机制建立联系。可以将新创建的组件类型的类作为一个蓝图,该类作为一个新类型的组件被附加到游戏对象。每次将一个脚本组件附加到游戏对象,都会创建一个该蓝图定义的对象的实例。创建的脚原创 2015-05-23 21:04:45 · 1972 阅读 · 0 评论 -
cocos2dx 3.x bindings-generator(Part two)
本想利用 cocos2d-x 自付的工具 bindings-generator 来将专案内的几个自写控件 binding 到 lua 下便于在 script 下控制,结果……真是他喵的坑啊….QAQ cocos2d-x 3.0rc0 范例的 simple_test 的环境太单纯了,并且没有用到 cocos2d 内的任何物件,故!在撰写自己的 .ini 档时会遇上一狗票问题,于是要回头参考 tool转载 2015-08-20 10:16:21 · 1116 阅读 · 0 评论