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

7 iphone objective-c cocos2d-iphone

我正在尝试使用Cocos2d构建一个iPhone应用程序.但我使用了四种类型的类,如bellow-

@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
Run Code Online (Sandbox Code Playgroud)

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

Gen*_*ich 20

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

[[[Director sharedDirector] window] addSubview:myView];
Run Code Online (Sandbox Code Playgroud)

更新到cocos 0.7,现在这是:

[[[Director sharedDirector] openGLView] addSubview:myView];
Run Code Online (Sandbox Code Playgroud)

在科科斯0.99:

[[[CCDirector sharedDirector] openGLView] addSubview:myView];
Run Code Online (Sandbox Code Playgroud)

在Cocos 2.0中

[[[CCDirector sharedDirector] view] addSubview:myView];
Run Code Online (Sandbox Code Playgroud)


Rog*_*Rog 2

仅从代码中很难回答这个问题,但我认为您需要回去阅读一些有关 UIKit 设计和 cocos2d 编程的内容。

HelloController 是一个视图控制器 - 你不能“显示”它。视图控制器是一个类,它响应来自视图的消息并控制它从模型显示的数据。

FlipView 是一个 ImageView,它是 UIView 的子类。要让 UIKit 渲染此图像,您需要使用以下命令将其添加到另一个视图[UIView addSubView:...]

这就是我认为你想要做的:

  1. 菜单项接收触摸事件。它向以下信号发出信号:
  2. 视图控制器
  3. 将 UIImage 添加到主视图

正如我所说,这是一个非常普遍的问题,我真的认为您应该返回文档并考虑您的设计。Apple 文档很好,现在市场上也有一些不错的 iPhone 书籍。