站内搜索

cocos2d-x 八(界面控件之CCControl控件)

CCControl控件也是cocos2d-x扩展控件中的一部分,包含了九宫格(nine pacth)按钮、滑动条、开关按钮、电位计按钮、步进器和颜色选择控件,这些也算是常用的控件了,下面是各个控件的使用方法及流程:
1.九宫格按钮
这是一种为了方便不失真缩放而诞生出的简洁型按钮,具体说来就是这种按钮使用的是纹理相对比较规则的图片,然后将图片划分为九个显示区域,在缩放按钮的时候,根据需要将这九个区域中的纹理按最佳比例进行延伸或者缩放,最后达到降低、甚至不失真的缩放效果。对应九宫格的类是CCScale9Sprite,它继承的是CCNodeRGBA,就是它负责将需要的图片按3X3...

cocos2d-x 七(界面控件之scrollView与tableView)

在cocos2d-x中集成了一些扩展插件,这些引用文件都可以在cocos2d-x目录下的extentions下找到,其中常用的scrollView和tableView的引用文件在GUI目录下。scrollView常用于大尺寸图片或者大区域无限制地显示内容(也就是说不需要对齐内容),tableView常用于大量数据的排列展示,特别是需要一些对齐格式的内容,其中scrollView只在cocosbuilder示例里展示了,但因为引用的是cocosbuilder生成的外部数据,所以没有具体的示例参考。要说cocosbuilder的话,它是一个可视化的编辑器,就如同上个月出的cocostudio一...

        

cocos2d-x 六(界面控件之MenuItem)

无论是PC应用还是移动应用,必不可少的元素之一就是控件,对用户来说它们被用于用户与应用的交互,对应用本身来说它们被用于应用各个功能框架的交互。cocos2d-x里的控件包含的种类很多,这里记录的是最常用的控件类CCMenuItem。对于为什么将一个看上去更像是按钮控件的东西被命名为Menu,我是着实纠结了一小会儿,现在看来也许是因为cocos2d-x用的是节点(Node)来存储控制各个对象,所以更适合叫MenuItem而不是Button……
官方原例里有个MenuTest,里面演示了一些风格化的MenuItem。查看这个类的源码可以看到其下衍生出了一堆子类控件,其中最眼熟的就是CCM...

        

cocos2d-x 五(精灵与动画)

精灵可以看作是演员、角色,在游戏中,精灵可以是一张图片,一个控件(比如label也是继承了精灵类)……在场景中,精灵会根据需要进行相关的“表演”,这个“表演”可以是待在某个坐标,也可以是一组动画……游戏中的动画效果是很多的,可以是动态变换位置、大小的菜单按钮,也可以是个游戏人物的行为动画……这里先推荐两篇不错的文章,里面详细介绍了各种动画效果和实现的原理:
http://blog.csdn.net/honghaier/article/details/8197892
http://blog.csdn.net/honghaier/article/details/8214030 ...

        

cocos2d-x 四(游戏场景与场景切换)

首先是一些常识的介绍,这里有篇文章:http://article.ityran.com/archives/3283
简单的说来,一个游戏中包含的主要元素就是导演,场景,层,精灵,其实就是和拍戏一样,导演负责按“剧本”控制场景、层和精灵(演员),这“剧本”当然是我们自己设计的,比如:有什么角色演员,什么样的场景下演员可以或者应该做什么动作……而导演负责执行和控制这些元素将“剧本”以动态可视化的表现形式展现出来,最后看起来就像一部“电影”。
场景和层都可以看作是一个容器,场景可以用来包含层和精灵,而层可以用来包含精灵或者其它层。层是有层级的,就像photoshop中处理图象时用来...

        

cocos2d-x 三(图片预加载与进度条)

在做游戏时,会用于很多和图片资源,包括角色,动画,纹理贴图……为了减少GPU和CPU的缓存占用以及图片的重复利用,在游戏开始时,都会预加载这些资源进入缓存,在cocos2d-x里用的是CCTextureCache这个类。其实,在cocos2d-x自带的TestCpp里有对应的例子,在里面用的是:
addImageAsync(const char *path, CCObject *target, SEL_CallFuncO selector);  


CCTextureCache::sharedTextureCache()->addImageAsync("Images/grossi...

        

cocos2d-x 一(跨平台编译)

移动应用编程我学得比较晚,这些天看了不少cocos2d-x的教程,趁着编译的空闲记录下学习过程和其中碰到的问题。
个人认为学习任何游戏框架和引擎都必需掌握的基础知识之一就是“跨平台编译”,这样就可以同时发布多个平台的应用,有利于推广。所以两天都没打代码,直接找教程学习cocos2d-x的跨平台编译方法及过程(网络上的资料包括编译时可能碰到的问题,大多很零散,所以这里整合一下)。
我自己的搭建的环境是VMWare9.0虚拟机+Mac+XCode,Win7+VS2010+eclipse+Cgywin+NDK,其中VS2010整合后可以正常使用cocos2d-x的核心功能,因为 编译...

        

cocos2d-x二(自适应屏幕分辨率)

在android中,适应各种分辨率是个很头疼的事,特别是对于游戏来说……网上教程介绍得已经很详细了,下面是个人认为写得比较全的文章链接:
1.http://codingnow.cn/cocos2d-x/975.html 或者http://blog.csdn.net/gg137608987/article/details/8302699
2.http://article.ityran.com/archives/3762
其实对于我来说,最简单的屏幕适配就是使用CCEGLView::sharedOpenGLView()->setDesignResoluti...

关于头文件(.h)和源文件(.cpp)的区别

关于头文件和源文件的区别
首先,我们可以将所有东西都放在一个.cpp文件内.
然后编译器就将这个.cpp编译成.obj,obj是什么东西?
就是编译单元了.一个程序,可以由一个编译单元组成,
也可以有多个编译单元组成. 如果你不想让你的源代码变得很难阅读的话,
就请使用多个编译单元吧.(一个函数不能放到两个编译单元里面,但两个以上
就可以分别放在一个单元,也就是cpp里面)
    那么就是一个.cpp对应一个.obj,然后将所有的obj链接起来(通过一个叫链接器的程序),
组成一个.exe,也就是程序了.
...