什么大致类似于iOS-UIKit中的cocos2D场景?

时间:2014-05-11 14:37:22

标签: ios cocoa-touch uiview cocos2d-iphone uikit

在cocos2D中,用户的体验被分解为场景。菜单场景,可能是一些选项场景,游戏级场景,积分等。导演根据需要随机播放这些场景。这些场景之间有各种类型的转换。

在iOS中,(不是Sprite Kit)是什么相当于一个被调用的场景,它们之间可用的转换的名称/类型是什么?什么相当于董事?

编辑:在下面的故事板视频中,术语“场景”用于看起来类似于用户在cocos2D应用程序中可能会想到的内容,而Segues用于描述看起来非常像过渡。这是UIKit / iOS中这类东西的常用词典吗? https://www.youtube.com/watch?v=a_DCTSTv1Mw

2 个答案:

答案 0 :(得分:1)

SpriteKit是iOS的一部分,只是一个抬头。

所以你要问的是“UIKit CCScene最接近的是什么?”

UIView是你能得到的最接近的东西。但是它没有像Cocos2d / SpritKit这样的游戏引擎提供相同类型的界面。

class reference for UIView有一些方法可以将转换封装到其他UIViews。即:

+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion
+ (void)transitionWithView:(UIView *)view duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion

对于动画选项,您可以提供以下类型的过渡:

UIViewAnimationOptionTransitionNone            = 0 << 20,
UIViewAnimationOptionTransitionFlipFromLeft    = 1 << 20,
UIViewAnimationOptionTransitionFlipFromRight   = 2 << 20,
UIViewAnimationOptionTransitionCurlUp          = 3 << 20,
UIViewAnimationOptionTransitionCurlDown        = 4 << 20,
UIViewAnimationOptionTransitionCrossDissolve   = 5 << 20,
UIViewAnimationOptionTransitionFlipFromTop     = 6 << 20,
UIViewAnimationOptionTransitionFlipFromBottom  = 7 << 20,

在这种情况下。使用UIViewController代替CCDirector是最好的选择。但是,应用程序通常只有1 UIViewControllerUIKitSpriteKit适用于两种非常不同的东西,因此它们以不同的方式使用。

视图控制器会导致这样的转换(假设您有一些操作方法):

-(IBAction)switchViewsPressed:(id)sender {
     [UIView transitionFromView:[self firstView] toView:[self secondView] duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:nil];
}

答案 1 :(得分:0)

从我可以收集到的,现在我知道了一些术语:

UIView是一个矩形对象,可以像一个场景一样,它包含构成&#34;场景&#34;的所有其他UIView。因此,在cocos2D意义上,One UIView是Scene,其他UIViews是构成场景内容的节点。

内部UIViews是一个Layer,本质上是一个CALayer,但是其他人可以作为这个Layer的子节点放置,也可以作为cocos2D的节点,但是他们都将成为UIView容器的子节点他们&#39在这个意义上,所有UIViews都可以被认为是cocos2D场景,主要区别在于UIKit允许许多UIViews,而cocos2D只允许一个当前和活动场景。

几乎任何东西似乎都能告诉UIView过渡到另一个UIView。

因此,为构成场景的所有其他UIView分配一个UIView作为主UIView的角色意味着它的场景&#34;。这个&#34;大师&#34; UIView将被分配一个UIViewController,然后可以通知它与其他&#34; master&#34;之间的转换。 UIViews,但这也可能是&#34;子场景&#34;由其他观点组成。

在这个意义上,UIViewController可以像Director一样,但它也可以做其他事情。在这个阶段不确定是什么。但是任何其他对象也可以告诉UIView转换到另一个UIView,所以任何东西都可以成为Director。