zoukankan      html  css  js  c++  java
  • Cocos2d-iPhone V3 (2) 场景转换

    Cocos2d-iPhone V3 (2) 场景转换

    • 博客:http://blog.csdn.net/prevention
    • 作者:大锐哥

    -

    1. 准备工作

    创建一个场景会吧?

    #import "cocos2d.h"
    #import "cocos2d-ui.h"
    @interface MainScene : CCScene
    + (MainScene *)scene;
    - (id)init;
    @end
    

    主要的方法都得实现,sceneinitonEnteronExittouchBegan。不会的话先看看 Cocos2d-iPhone V3 (1) 基本程序框架以及经常使用动作介绍 这篇。

    好了,如今如果你已经创建了两个自己定义场景类MainSceneHomeScene

    2. 转场!

    MainScene转换到HomeScene。在MainScene的某处代码中调用:

    CCTransition *t = [CCTransition transitionPushWithDirection:CCTransitionDirectionRight
                                                       duration:1.0f]
    [CCDirector sharedDirector] replaceScene:[HomeScene scene] withTransition:t];
    

    创建一个CCTransition。然后让导演来 hold 住全场,用CCTransition来转场到HomeScene。使用的函数是:

    - (void)replaceScene:(CCScene *)scene withTransition:(CCTransition *)transition;
    

    你要有一种电影导演的感觉。这里提一下转场四要素:

    1. 旧场景
    2. 新场景
    3. 转场方式:可能涉及转场方向等參数
    4. 转场时间

    3. 经常使用转场方式

    上面用到的是push,详细是新场景从右側向左移入(推动旧场景也向左移)。六种转场方法例如以下:

    // 注意:以下的写法是不正式的,仅仅是为了简短明了
    
    // cross fade
    transitionCrossFadeWithDuration:(NSTimeInterval)    
    // fade with color
    transitionFadeWithColor:(CCColor*) duration:(NSTimeInterval)
    
    // fade
    transitionFadeWithDuration:(NSTimeInterval)
    
    // move in
    transitionMoveInWithDirection:(CCTransitionDirection) duration:(NSTimeInterval)
    
    // push
    transitionPushWithDirection:(CCTransitionDirection) duration:(NSTimeInterval)
    
    // reveal
    transitionRevealWithDirection:(CCTransitionDirection) duration:(NSTimeInterval)
    
    • cross fade 转场就是旧场景 alpha 值从 1 变为 0,新场景的 alpha 值从 0 变为 1,两个 cross 在一起。
    • fade with color 转场就是在旧场景与新场景之间加一个颜色场景,先从旧场景 cross fade 到这个颜色场景,再从颜色场景 cross fade 到新场景。
    • fade 就是 fade with color 的一个特殊情况,即颜色场景为黑色的情况。
    • move in 转场是指新场景 move in。即新场景像一个盖子一样挪过来盖在旧场景上面。

    • push 转场是新场景把旧场景推走,两个场景平行移动。
    • reveal 转场就是旧场景盖在新场景以下,然后像揭盖子一样把旧的揭掉。新的就露出来了。

      与 move in 相反,一个是新场景盖过来。一个是老场景揭出去。

    事实上你 coding 一下试试就知道了,把 duration 设置长一点来观察。

    -

    转载请注明来自:http://blog.csdn.net/prevention

  • 相关阅读:
    vue多项目的工程化部署
    vue+element项目部署到线上,icon图标不显示
    elementui的表格嵌套表单及校验demo
    借鉴微信小程序表单校验wxValidate的源码里边的正则
    vue中el-upload上传多图片且携带参数,批量而不是一张一张的解决方案
    Maven笔记
    《图解HTTP》摘要
    Java面向对象
    MySQL数据库学习记录
    Python二维数组操作
  • 原文地址:https://www.cnblogs.com/blfshiye/p/5137112.html
Copyright © 2011-2022 走看看