cocos2dxnaTweeJump学习笔记1(都是自己看别人代码后所感所想,希望有懂的人指出我的错误或者大家交流交流)

Cocos2d-XNA基础介绍

下面介绍一下TweeJump中主要用到的Cocos2d-XNA的类。

CCDirector负责管理场景和切换场景游戏暂停等。

CCNode是Cocos2d-XNA中最重要的对象。CCNode的addChild()方法,我个人认为是最重要的方法。它充当了一个容器的角色可以addChild进去无数个节点,但每个节点只有一个父节点,同时他可以执行回调函数和CCAction有postion,scale,rotation等等属性。

CCLayer,它是CCNode的子类,层是一个可以绘制的区域.可以将ui,sprite等对象添加到其中。

CCMenu从CClayer派生而来,可以处理输入消息,CCMenu包含多个CCMenuItem对象,在接收到输入消息之后,根据触摸位置,将输入消息分发到相应MenuItem,执行回调函数,CCMenu还提供一个对齐菜单项的功能

CCSprite, 可以看成是某一时刻,一个2D的图片的一个剪辑部分

知识点一:

现在需要把pScene实例化为我们的Main,但是不好的事情是我们的Main.cs是一个CCLayer并不是CCScene,实现代码如下:

CCScene pScene = CCScene.node();

pScene.addChild(Tweejump.Classes.MainMenu.node());

从上面这段代码,是不是可以认为CCLayer类可以通过上面的转化方法变成CCScene????

知识点二:

CCMenuItem button1 = CCMenuItemImage.itemFromNormalImage(@"Images\loginButton", @"Images\loginButton", this, loginCallback);

Scale(button1);

CCMenu menu = CCMenu.menuWithItems(button1, button2, button3);

this.addChild(menu);

添加按钮的步骤:1.实例化一个CCMenuItem对象 CCMenuItemImage.itemFromNormalImage()前两个参数分别是按下前和按下时的图片资源 (CCSprite),最后一个参数为按                                下后 的回调函数,格式: void Callback(CCObject sender){}。

                       2.Scael();缩放对象

                       3.实例划菜单 CCMenu.menuWithItems(按钮1,按钮2,。。。。);

                       4.将菜单添加到类里去。

知识点三:

代码摘自Main.cs,该类继承自CCLayer

CCSpriteBatchNode spriteManager = CCSpriteBatchNode.batchNodeWithFile("Images/sprites", 10);
addChild(spriteManager, -1, (int)tags.kSpriteManager);

 

CCSprite background = CCSprite.spriteWithTexture(spriteManager.Texture, new CCRect(0, 0, 320, 480));
spriteManager.addChild(background);

定义一个子画面spriteManager容器
Main.cs注册了spriteManager并把它添加到了Main这个CCLayer中(addChild()方法),
在需要的地方取出spriteManager.Texture的某一部分保存到CCSprite里形成一个新的CCSprite对象,
再spriteManager.addChild(CCSprite:) 交给spriteManage统一管理。

 知识点四:

代码摘自MainMenu.cs,继承自Main.cs

CCSprite logo = CCSprite.spriteWithFile(@"Images\logo");
logo.position = new CCPoint(240, 650);
addChild(logo);

知识点五:

addchild(CCNode child,int zorder,int tags)里的参数意义:

叠置顺序(z-order)是依照  控制项加入至 表单的 Controls 集合之顺序来决定。

知识点六:

知识点三和四说明了两种CCSprite的实例方法。

疑问点:

知识点三里定义了一个容器,为什么要定义这个容器?为什么知识点四里没有定义这个?

batchNodeWithFile()里的第二个参数的作用?

 

 

 

 

 

原文地址:https://www.cnblogs.com/dieaz5/p/2590948.html