我们如何使用Cocos2d显示UIViewController和UIView?

时间:2009-02-03 10:48:52

标签: iphone objective-c cocos2d-iphone

我正在尝试使用Cocos2d构建iPhone应用程序。但是我使用了四种类型的类 像贝娄 -

@interface MenuScene : Scene {}

@end
@interface FlipView : UIImageView
{
    CGPoint startTouchPosition;
    NSString *dirString;
    UIImageView *firstPieceView;   
    UIImageView *secondPieceView;

}
@end

@interface HelloController : UIViewController
@end


@interface MenuLayer: Layer{
        Todo *todo;
        Menu * menu;
        sqlite3 *database;
        NSMutableArray *todos;
    NSString *dirString;
    CGPoint startTouchPosition;
}
@property (nonatomic, retain) NSMutableArray *todos;
-(void) button1: (id)sender;
-(void) button2: (id)sender;
-(void) black_jack: (id)sender;
@end

但是如何通过MenuLayer类显示FlipView和HelloController类。

2 个答案:

答案 0 :(得分:20)

如果您问如何将UIKit视图等附加到cocos2d-iphone项目,您只需要这样做:

[[[Director sharedDirector] window] addSubview:myView];

更新到cocos 0.7,现在是:

[[[Director sharedDirector] openGLView] addSubview:myView];

在科科斯0.99:

[[[CCDirector sharedDirector] openGLView] addSubview:myView];

在Cocos 2.0中

[[[CCDirector sharedDirector] view] addSubview:myView];

答案 1 :(得分:2)

仅从代码中回答这个问题非常困难,但我认为你需要回过头来阅读一下UIKit设计和cocos2d编程。

HelloController是一个视图控制器 - 你不能'显示'它。视图控制器是一个类,它从视图中回复消息并控制它从模型中显示的数据。

FlipView是一个ImageView,是UIView的子类。要让UIKit渲染此图像,您需要使用[UIView addSubView:...]

将其添加到另一个视图

以下是我认为您想要做的事情:

  1. 菜单项接收触摸事件。它发出信号:
  2. 视图控制器
  3. 将UIImage添加到主视图
  4. 就像我说的那样,这是一个非常普遍的问题,我真的认为你应该回到文档并考虑你的设计。 Apple的文档很好,现在市场上有一些好的iPhone书籍。