我正在尝试让关门过渡就像我们在 Kingdom Rush 中看到的那样。(左右两扇门)
我在想的是两种方法:
第一个可能是自定义转换,将输入作为门图像
对于这种方法,尽管这是我的首选方法,但我找不到方法
第二种方法可能是在第一个场景中创建关门动画,并在第二个场景中关闭相同的门来推动第二个场景。之后做开门动画。
这种方法是可能的,但我想知道场景转换中是否会出现闪烁
有没有人遇到过这个问题?
提前致谢
我正在尝试让关门过渡就像我们在 Kingdom Rush 中看到的那样。(左右两扇门)
我在想的是两种方法:
第一个可能是自定义转换,将输入作为门图像
对于这种方法,尽管这是我的首选方法,但我找不到方法
第二种方法可能是在第一个场景中创建关门动画,并在第二个场景中关闭相同的门来推动第二个场景。之后做开门动画。
这种方法是可能的,但我想知道场景转换中是否会出现闪烁
有没有人遇到过这个问题?
提前致谢
查看 cocos2d 源代码中的 CCTransition.m 文件。在翻转过渡类中,您可以找到 CCOrbitCamera 动作使用的示例。在场景的情况下,它会将它们相对于它们的中心翻转。但是所有的转换都是相对于节点的锚点进行的。因此,您可以尝试不同的变体。
我建议第二个。这很容易......像这样:
在单独的类中制作动画,并在您的场景中调用动画以在场景结束时关闭并将下一个场景替换为:[[CCDirector sharedDirector]replaceScene:[NextScene scene]];
如果您的场景加载相对较快..它根本不会闪烁..但如果它确实(出于某种原因)创建另一个线程并将“大事”添加到后台线程中的下一个场景,以便场景立即加载,并在您为门设置动画时加载其余部分。
要检测门是否关闭......只需NSUserDefaults
在第一个场景中将 BOOL 设置为 YES,然后在第二个场景中检查门是否关闭。
至于动画本身,只需在屏幕外制作 2 个 ccsprite,然后在屏幕上对其进行动画处理。另外..因为当您离开场景时精灵已经在内存中,您不需要在下一个场景中加载任何内容..所以它是即时的。