zoukankan      html  css  js  c++  java
  • Scene

    场景是由director来控制管理的, Director用来管理的函数:

    /** 
    * 设置场景,然后进入Director类的主循环;
    * 当已经有场景在运行时,请不要调用该函数;
    * 调用该函数去设置程序的第一个场景;
    * 该函数内部,会调用pushScene;之后会调用startAnimation函数。
    */
    void runWithScene(Scene *scene);
    
    /** 
    * 将当前运行的场景压入场景栈中,并挂起当前运行的场景;
    * 同时运行参数中传入的新的场景。
    * 注:请避免在场景栈中存放太多的场景,这样有可能占用过多的内存资源;
    * 只有当前有正在运行的场景时,才可以调用该函数。
    */
    void pushScene(Scene *scene);
    
    /**
    * 从场景栈中弹出一个场景,并使用该场景替换正在运行的场景;
    * 当前正在运行的场景会被释放掉。如果在场景栈中没有场景时,程序就会终    止。
    * 只有当前有正在运行的场景才可以调用该函数。
    */
    void popScene();
    
    /**
    * 内部调用popToSceneStackLevel(1)完成。
    */
    void popToRootScene();
    
    /**
    * 从场景栈中弹出指定位置之前的所有场景;
    * 如果参数level等于0,直接调用end()函数,结束director;
    * 如果参数level等于1,弹出除了根场景外的所有场景;
    * 如果参数level大于当前栈中场景数量,什么都不会发生。
    */
    void popToSceneStackLevel(int level);
    
    /**
    * 使用参数的场景替换当前正在运行的场景。当前正在运行的场景会被释放掉。
    * 只有当前有正在运行的场景时,才可以调用该函数。
    */
    void replaceScene(Scene *scene);
    
    /**
    * 结束程序,释放当前正在运行的场景
    * 但是这个函数并没有从它的父对象中删除OpenGL view。我们需要手动的去删除这个对象。
    */
    void end();
    
    /**
    * 暂停当前正在运行的场景;
    * 所有的调度器都会被暂停;
    * 当暂停时,为了减少CPU消耗,场景绘制的帧率是每秒4帧。
    */
    void pause();
    
    /**
    * 唤醒停止的场景
    * 调度器会被重新激活,开始事件调度
    */
    void resume();
    
    /**
    * 停止所有动画,任何内容都不会被再绘制。Director类中的主循环将处于停止状态
    * 如果不想暂停动画效果,可以调用pause函数。
    */
    virtual void stopAnimation() = 0;
    
    /**
    * 重新出发Director类中的主循环
    * 只有在stopAnimation被调用过后,才可以调用该函数用来恢复主循环
    * 在程序初始化时,请不要手动调用该函数来触发主循环,而是调用runWithScene函数
    */
    virtual void startAnimation() = 0;
    
    /**
    * 该函数被用来绘制场景。
    * 这个函数在每一帧的时候,都会被调用;
    * 注:请不要手动调用该函数。
    */
    void drawScene();


    *******************场景的切换**************
    切换效果类都是类TransitionScene的子类,TransitionScenecreate函数有两个参数,第一个参数表示切换的时间,第二个参数是要进入的场景
    例如:director->replaceScene(TransitionSlideInT::create(3.0f, SecondScene::createScene()));
  • 相关阅读:
    版本控制 version control
    URL URI
    能用上的收藏
    函数式语言简介(functional language)
    h5触摸事件-判断上下滑动
    地理定位
    web存储
    jquerymobile tap事件被触发两次
    关于button的onclientclick事件和onclick事件
    .net 后台给html控件赋值
  • 原文地址:https://www.cnblogs.com/lion-witcher/p/5980020.html
Copyright © 2011-2022 走看看