zoukankan      html  css  js  c++  java
  • 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()里的第二个参数的作用?

     

     

     

     

     

  • 相关阅读:
    弹出框位置设置
    Spring Boot 发布 jar 包转为 war 包秘籍
    Oracle 动态sql小例子
    [转]ORACLE EXECUTE IMMEDIATE 小结
    [转]Java web 开发 获取用户ip
    SQLServer2008 使用sql语句访问excel数据
    Oracle 循环调用存储过程
    JavaScript 判断手机端操作系统(Andorid/IOS)
    Oracle 当输入参数允许为空时
    Oracle 生成数据字典
  • 原文地址:https://www.cnblogs.com/dieaz5/p/2590948.html
Copyright © 2011-2022 走看看