zoukankan      html  css  js  c++  java
  • Cocos2d-x学习笔记(七)之 布景层类CCLayer

      布景层类CCLayer 是CCNode 类的子类, 并且在此基础上实现触屏事件代理(TouchEventsDelegate)协议,可以实现CCNode 类的功能,并且可以处理输入,包括触屏和加速度传感器。每个游戏场景中可以有很多层,每一层负责各自的任务,如专门负责显示地图的背景、专门负责显示敌人、专门负责机关和专门负责主角等;每一层上可以放置不同的元素,包括文本、精灵图片和菜单等。通过层与层之间的组合关系,就可以构成游戏显示的界面UI,游戏中等。当然为了看到每一层的东西,可把一些层设置为透明或半透明的,这样就可以看到不同布景层叠加到一起的效果了。CCLayer类的继承关系如下:(CCLayer 类继承自CCNode 类,并且CCLayer 类还遵照触屏代理协议、加速度传感器代理协议、键盘时间代理协议等协议。)

      CCLayer-->CCNode、CCTouchDelegate、CCAcceleromelerDelegate、CCKeypadDelegate。

      成员函数如下

      init:初始化CCLayer。

      onEnter:当进入布景层时被调用。

      onExit:当离开布景层时被调用。

      onEnterTransitionDidFinish:过场动画结束时调用。

      ccTouchBegan:触屏触摸屏幕。

      ccTouchMoved:触屏移动。

      ccTouchEnded:触屏结束。

      ccTouchCancelled:触屏取消。

      ccTouchesBegan:触屏触摸屏幕(多点触控)。

      ccTouchesMoved:触屏移动(多点触控)。

      ccTouchesEnded:触屏结束(多点触控)。

      ccTouchesCancelled:触屏取消(多点触控)。

      didAccelerate:加速度传感器。

      registerWithTouchDispatcher:如果触屏被允许,这个方法在init 里调用。

      isTouchEnabled:获得是否触屏。

      setTouchEnabled:设置触屏。

      isAccelerometerEnabled:是否获得加速度传感器。

      setAccelerometerEnabled:设置获得加速度传感器。

      isKeypadEnabled:是否获得键盘事件。

      setKeypadEnabled:设置获得键盘事件。

      

      1、定义布景层并把它加入到场景中

    1     // 创建场景
    2     CCScene *scene = CCScene::create();
    3     
    4     // 创建布景层
    5     HelloWorld *layer = HelloWorld::create();
    6 
    7     // 把布景层加入到场景中
    8     scene->addChild(layer);

      2、CCLayer中的init函数在创建布景层时被调用,在init 函数中定义要显示的对象并把它作为子类加入场景中。

     1 bool HelloWorld::init()
     2 {
     3     if ( !CCLayer::init() )
     4     {
     5         return false;
     6     }
     7      
     8     //定义要显示的对象并把它们添加到场景中
     9 
    10     return true;
    11 }

    好了,布景层就先介绍到这里了,布景层类有很多种子类,比如:CCLayerColor(实现 CCRGBAProtocol 协议,可设置层的颜色和不透明度)、CCLayerMultiplex(可以将它和子布景层结合在一起)、CCMenu(菜单布景层)、CCControl(UI 控件)、CCScrollView(支持Cocos2D-iPhone 的滚动视图)等。下面就会分别对这些比较重要的子类进行介绍和对其的使用方法。

  • 相关阅读:
    Python编程知识
    Ubuntu 20.04.3 LTS + Intel Realsense 400系列
    Kubectl
    在Debian Buster中安装redis-cli
    MySQL中最近执行的查询的信息
    EntityFramework 在脚本中使用in
    CLDR TimeZone Mapper
    Skyspark Axon
    Async Restsharp call
    HTTP 1.1 中的Accept-Language header
  • 原文地址:https://www.cnblogs.com/atong/p/3272657.html
Copyright © 2011-2022 走看看