微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

cocos2d-android开发基础篇一下

三 cocos2d-x(布景层类)

cclayerCCNode的子类,在此基础上实现触屏时间代理协议。可以实现CCNode类的功能,并且可以处理输入,包括触屏和加速度传感器。场景中可以有很多个布景层。

继承关系如下:

cclayerColorcclayer的子类,有两个扩展功能

1)为布景层增添颜色。

2)设置不透明度。

cclayerMultiplex

游戏一般分为两个部分:一方面是游戏界面部分,也就是UI部分。另一方面就是游戏本身部分。有时候UI有很多页面,在页面中用的图并不是很多,不需要使用切换场景,只需要把不同的页面做成不同的布景层,然后切换布景层。cclayerMultiplex类就是用来管理这些布景层。

Ccmenu:

菜单项可以是图片、系统字,或者自定义的字体。

// 自定义继承cclayer的扩展内部类;
	class mycclayer extends cclayer {
		// 定义一个精灵对象;
		CCSprite play;
		public mycclayer() {
			//获得事件;
			this.setIsTouchEnabled(true);
			//调用schedule方法,传递方法名称,以及间隔时间;
			this.schedule("fun",3);
		}
		//data往往表示增量,在当前的例子中,
		//该变量的值为上一次的调用fun方法与这次调用方法的时间间隔;
		public void fun(float data) {
System.out.println("调用了fun方法,data的值为:"+data);
		}
		// 屏幕按下;
		@Override
		public boolean cctouchesBegan(MotionEvent event) {
			//取消调用fun方法;
			this.unschedule("fun");
			return super.cctouchesBegan(event);
		}
		// 屏幕弹起;
		@Override
		public boolean cctouchesEnded(MotionEvent event) {
			System.out.println("Ended");
			Log.e("youxi","Ended");
			return super.cctouchesEnded(event);
		}
		// 屏幕移动;
		@Override
		public boolean cctouchesMoved(MotionEvent event) {
			System.out.println("Moved");
			Log.e("youxi","Moved");
			return super.cctouchesMoved(event);
		}

	}
///


cocos2d-x(精灵类)

精灵类CCSprite是一张二维的图片对象,它可以用一张图片或者一张图片的一块矩形部分来定义。

类继承:

纹理贴图集是将我们需要的部分图片放在一张大小固定的图片,可以节约内存。因为OpenGL机制会把单张图处理成相应大小的长宽都是2n次方的图片,所以把图片放在一起可以节约空间。

贴图类CCTexture2D

贴图类CCTexture2D是关于OpenGL的概念。在OpenGL中称图片为贴图,在Cocos2D-xCCTexture2D就是图片对象的意思,可以通过它创建精灵等对象。CCTexture2D类是精灵类和其相关类的基础。

精灵批处理类CCSpriteBatchNode

当你需要显示两个或两个以上相同的精灵时,如果逐个渲染精灵,每一次渲染都会调用OpenGL函数,因为当系统在屏幕上渲染一张贴图的时候,图形处理硬件必须首先准备渲染,然后渲染图形,最后完成渲染以后的清理工作。以上是每次渲染固定的开销,这样帧率就会下降15%左右或者更多。如果将所有需要渲染的同一张贴图只进行一次准备,一次渲染,一次清理就可以解决这个问题了。这时可以使用CCSpriteBatchNode类来批处理这些精灵,比如游戏屏幕中的子弹等就可以这样做。

类继承:

这里需要说明的是,加入CCSpriteBatchNode类的精灵类越多,提高效率的效果就越明显。不过也有一些限制,所有属于同一个CCSpriteBatchNode类的精灵类都有相同的深度值,也就是说,如果需要呈现一个子弹在人物前面、另外一个子弹在人物后面的不同遮挡关系,获得每个子精灵并单独设置和重排序它们,尽管使用的是同一张贴图,但可以把它们理解为不在同一(并不是布景层)。此外,所有属于同一个CCSpriteBatchNode类控制的精灵类必须使用同一张贴图,但是这并不是一个限制,如果想使用不同的图片,可以把它们放在同一张贴图集当中。另外还有一些限制,就是CCSpriteBatchNode类设置锯齿/抗锯齿效果时,所有子精灵也同时设置了锯齿/抗锯齿效果,不可以单独设置。同样不能单独设置的还有混合函数blendfunc)。可以把CCSpriteBatchNode类理解为cclayer类,只不过CCSpriteBatchNode类只接受CCSprite类和它的子类。

精灵帧类CCSpriteFrame

精灵帧的概念是相对于动画而产生的。一个精灵是固定的节点,它可以拥有许多精灵帧(CCSpriteFrame),在它们之间切换就形成了动画。

继承关系:

CCSpriteFrame类通过贴图定义,也可以是贴图的一部分,可以通过精灵的setdisplayFrame函数来设置当前显示的精灵帧。

精灵帧缓存类CCSpriteFrameCache

精灵帧缓存类CCSpriteFrameCache用来存储精灵帧,提前缓存起来有助于提高程序的效率。CCSpriteFrameCache一个单例模式,不属于某个精灵,是所有精灵共享使用的。

继承关系:

四(schedule调度器)

//调用schedule方法,传递方法名称,以及间隔时间;this.schedule("fun",3);

<span style="color:#009900;">public void fun(float data) {</span>
<span style="color:#009900;">System.out.println("调用了fun方法,data的值为:"+data);</span>
<span style="color:#009900;">}</span>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


    本文实践自 RayWenderlich、Ali Hafizji 的文章《How To Create Dynamic Textures with CCRenderTexture in Cocos2D 2.X》,文中使用Cocos2D,我在这里使用Cocos2D-x 2.1.4进行学习和移植。在这篇文章,将会学习到如何创建实时纹理、如何用Gimp创建无缝拼接纹
Cocos-code-ide使用入门学习地点:杭州滨江邮箱:appdevzw@163.com微信公众号:HopToad 欢迎转载,转载标注出处:http://blog.csdn.netotbaron/article/details/424343991.  软件准备 下载地址:http://cn.cocos2d-x.org/download 2.  简介2.1         引用C
第一次開始用手游引擎挺激动!!!进入正题。下载资源1:从Cocos2D-x官网上下载,进入网页http://www.cocos2d-x.org/download,点击Cocos2d-x以下的Download  v3.0,保存到自定义的文件夹2:从python官网上下载。进入网页https://www.python.org/downloads/,我当前下载的是3.4.0(当前最新
    Cocos2d-x是一款强大的基于OpenGLES的跨平台游戏开发引擎,易学易用,支持多种智能移动平台。官网地址:http://cocos2d-x.org/当前版本:2.0    有很多的学习资料,在这里我只做为自己的笔记记录下来,错误之处还请指出。在VisualStudio2008平台的编译:1.下载当前稳
1.  来源 QuickV3sample项目中的2048样例游戏,以及最近《最强大脑》娱乐节目。将2048改造成一款挑战玩家对数字记忆的小游戏。邮箱:appdevzw@163.com微信公众号:HopToadAPK下载地址:http://download.csdn.net/detailotbaron/8446223源码下载地址:http://download.csdn.net/
   Cocos2d-x3.x已经支持使用CMake来进行构建了,这里尝试以QtCreatorIDE来进行CMake构建。Cocos2d-x3.X地址:https://github.com/cocos2d/cocos2d-x1.打开QtCreator,菜单栏→"打开文件或项目...",打开cocos2d-x目录下的CMakeLists.txt文件;2.弹出CMake向导,如下图所示:设置
 下载地址:链接:https://pan.baidu.com/s/1IkQsMU6NoERAAQLcCUMcXQ提取码:p1pb下载完成后,解压进入build目录使用vs2013打开工程设置平台工具集,打开设置界面设置: 点击开始编译等待编译结束编译成功在build文件下会出现一个新文件夹Debug.win32,里面就是编译
分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net前言上次用象棋演示了cocos2dx的基本用法,但是对cocos2dx并没有作深入的讨论,这次以超级马里奥的源代码为线索,我们一起来学习超级马里奥的实
1. 圆形音量button事实上作者的本意应该是叫做“电位计button”。可是我觉得它和我们的圆形音量button非常像,所以就这么叫它吧~先看效果:好了,不多解释,本篇到此为止。(旁白: 噗。就这样结束了?)啊才怪~我们来看看代码:[cpp] viewplaincopyprint?CCContro
原文链接:http://www.cnblogs.com/physwf/archive/2013/04/26/3043912.html为了进一步深入学习贯彻Cocos2d,我们将自己写一个场景类,但我们不会走的太远,凡是都要循序渐进,哪怕只前进一点点,那也至少是前进了,总比贪多嚼不烂一头雾水的好。在上一节中我们建