求教Cocoscreator 中的几个问题: 怎么实现场景切换特效

最近在用creator开发一个多人麻将的游戏,中途遇到了很多问题,找了好几天的资料也没有得到答案,如下:

  1. 场景间切换的动画效果怎么实现?在cococjs中有专门的方法,但在creator 中一直没找到,不知是不是要自己去实现还是有什么别的方式(PS:我是新手)
  2. 用第三方微信登录是怎么做的,看了半天官方资料,还没太弄明白,主要是整个流程以及每一项之间的关系。一定得用anysdk吗?感觉它更像是一个多渠道发布的工具(目前还没有具体测试它)
  3. 关于弹出框,做了好久才终于实现了一个有遮罩层的弹出框,有关闭按钮和点击遮罩的地方隐藏的功能,感觉特别麻烦,而且有多个场景都需要时,要一个一个的复制更改,有没有什么好的解决方案?
    4.启动动画在什么地方更改?
    望有经验的朋友能指点一二?
1赞

呵呵,我也在做这方面的,也是在学习阶段,你的第三个问题,我是这样做的:做一个全局节点(persistNode),在全局节点脚本中,创建弹出框,这样,你的每个场景都可以使用

1赞

你是说全部用代码来创建吗?这倒是一个思路,我是这么做的: 添加一个 alertBox的结点,它有alertMask子节点(遮罩层),有alertContent子节点(内容区),内容区中有放置在左上角的关闭按钮。然后加上通用的功能(关闭和弹出还有相应的回调),这样就做成一个通用的模板,由于每一个弹出框的内容,样式,还是弹出和关闭前后要做的操作都不一样,而我还没能把它做成类似于预制资源那样的一个整体,但又方便更改的东西,所以只能每次都复制,然后再加节点上去。你说的方法,我会试一试的。谢了。

我说说我的做法,但是不敢保证是最好的做法

1.专门用一个prefab来做转场特效,需要转场的时候实例化这个prefab,同时预加载下一个运行的场景,在预加载完成后加载下一个场景,也可以不做成prefab,而是设置为常驻节点

2.不知道,没做过

3.弹出框我是用一个节点b做背景,这个b节点是个空节点,大小和场景一样大,然后把弹出框内容作为这个节点的子节点c,然后在子节点c上挂载一个自定义组件(JS文件),然后c节点有标题啊,背景啊,其他什么部件啊,还有一个content子节点放内容,这个自定义组件里给父节点b添加触摸监听,然后吞噬,这样这弹出框出现的时候弹出框以为的内容不能被点击,然后自定义组件里我写了几个方法,大体如下

1).设置弹出框标题

2).添加按钮(自己找个地方放个layout,resizeMode为container,按钮添加到container里实现对齐)

3).添加文本

4).添加图片

5).添加自定义节点(自定义节点可以是任意node)

6). 关闭方法(用来关闭弹出框)

这个弹出框我又分为了两种,一种是固定大小,content节点是scrollView,内容太多可以滑动查看,我的目的是用来做公告啊,说明什么的,因为不知道有多少内容

第二种是可以动态更改大小的(动态更改高度,宽度固定),content节点是layout,resizeMode是container(但是要保证添加的内容的宽度不能大于content节点的宽度),这种就适合大概知道内容有多少的

然后内容我分为几种,比如文本,图片,其他自定义的样式(你不可能每个弹出框的内容完全不一样没有共同点吧?),大概分几类,然后不同的内容节点做成不同prefab,再写不同的脚本来初始化和设置不同的内容

内容和弹出框全部做成prefab,要用的时候实例化,然后调用相应的方法初始化,并且用cc.director.getScene().addChild()来添加,这样 应该 能保证弹出框在最上面

当然这是模态对话框,弹出后只要关闭对话框才能操作对话框后面的内容,如果你想在弹出对话框的时候也能操作对话框后面的内容,就不需要背景节点b,也不需要添加触摸监听并吞噬

4 http://forum.cocos.com/t/cocos-creator-loading/39135/8

当然这些东西大家都能做出来,我水平也不是很高,我只是来发表一下我的看法,希望对楼主有帮助,如果有更好的想法,可以分享出来让我借鉴:joy:

3赞

你说的第一点,感觉可能达不到想像中的效果,不过应该也会是一种比较好的思路,后面我会测试的。第三点,跟我现在的思路大致相同,不过最近太忙了,只好先把效果做出来,后面空点的时候再慢慢试。第四点,我看了这个链接,讲得还好,至少有了思路了。谢了。等忙过这段时间,我会再次回复的。

比如说呢?:slightly_smiling:

没做过切换场景的效果,但不知道这个思路怎么样:
在要切换场景的时候先截屏,保存下来;
在下个场景开始阶段对这个截图和场景图做综合动画效果。
纯假想,不知道行不行。

大哥,请问弹出框那里怎么吞噬的?

给弹出框添加一个全屏透明的层,给这个层添加触摸事件就行了。

网页版的好像没法截图,但是在app中有可能实现,以后试试。

前后两个场景的内容不一样,那个prefab应该做成什么样的呢

场景切换特效,可以试一下在当前场景runAction同时preload下一个场景,都完成后再执行场景切换,切换完回调时在让当前场景runAction从而拼接成完整的过度动画,个人思路,没有试过

不要切换场景,用layer代替场景,很灵活

1赞

能说下思路吗?我也准备这么用,但是感觉有很多不便。

对的,可以只用一个场景,其它的全部做成prefab,这样想做什么样的效果都行,关键是代码容易组织与维护。

弹出框最好的就是,cocos2d-x的写法最好,也最方便

满足不了多人维护