2013-05-13 20 views
2

我想补充awesomeMenu在我的项目,但存在awesomemenu的文件的appdelegate中的问题 添加AwesomeMenu Appdelegate.h中的appdelegate

@interface AppDelegate : UIResponder <UIApplicationDelegate,AwesomeMenuDelegate> 
@property (strong, nonatomic) UIWindow *window; 
@end 

,并在我们的正常appdelegate.h文件有

@interface AppController : NSObject <UIApplicationDelegate, CCDirectorDelegate> 
{ 
UIWindow *window_; 
UINavigationController *navController_; 
CCDirectorIOS *director_;       // weak ref 
} 

@property (nonatomic, retain) UIWindow *window; 
@property (readonly) UINavigationController *navController; 
@property (readonly) CCDirectorIOS *director; 

@end 

现在如果我改变CCdirectordelegate到AwesomeMenudelegate会有错误 如何实现它? 是否有可能在helloworld图层中使用它 或者我们必须从appdelegate运行awesomemenu?

还是有可能实现两个接口?

回答

1

如果您想要使用Cocos2d项目来编译AwesomeMenu,您不必从AppDelegate.h中删除CCDirectorDelegate。这是我做了什么和工作原理:

  1. 创建一个新的项目基于默认的cocos2d模板 (如果你想成为最新的,创造AwesomeMenu的github上项目的本地副本)
  2. 添加到AwesomeMenu的项目2子目录:AwesomeMenu/AwesomeMenu(4个文件内)和图像
  3. 仅修改2个文件:HelloWorldLayer.h和HelloWorldLayer.m

HelloWorldLayer.h(添加了一个进口真棒Menu.h和AwesomeMenuDelegate)

#import <GameKit/GameKit.h> 
#import "AwesomeMenu.h" 

// When you import this file, you import all the cocos2d classes 
#import "cocos2d.h" 

// HelloWorldLayer 
@interface HelloWorldLayer : CCLayer <GKAchievementViewControllerDelegate, 
             GKLeaderboardViewControllerDelegate, 
             AwesomeMenuDelegate> 
{ 
} 

HelloWorldLayer.m(删去GameCenter的代码修改仅init方法和添加例如AwesomeMenu菜单的方法稍加修改):

-(id) init 
{ 
    // always call "super" init 
    // Apple recommends to re-assign "self" with the "super's" return value 
    if((self=[super init])) { 
    // ask director for the window size 
    CGSize size = [[CCDirector sharedDirector] winSize]; 




    UIImage *storyMenuItemImage = [UIImage imageNamed:@"bg-menuitem.png"]; 
    UIImage *storyMenuItemImagePressed = [UIImage imageNamed:@"bg-menuitem-highlighted.png"]; 

    UIImage *starImage = [UIImage imageNamed:@"icon-star.png"]; 

    AwesomeMenuItem *starMenuItem1 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage 
                  highlightedImage:storyMenuItemImagePressed 
                   ContentImage:starImage 
                highlightedContentImage:nil]; 
    AwesomeMenuItem *starMenuItem2 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage 
                  highlightedImage:storyMenuItemImagePressed 
                   ContentImage:starImage 
                highlightedContentImage:nil]; 
    AwesomeMenuItem *starMenuItem3 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage 
                  highlightedImage:storyMenuItemImagePressed 
                   ContentImage:starImage 
                highlightedContentImage:nil]; 
    AwesomeMenuItem *starMenuItem4 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage 
                  highlightedImage:storyMenuItemImagePressed 
                   ContentImage:starImage 
                highlightedContentImage:nil]; 
    AwesomeMenuItem *starMenuItem5 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage 
                  highlightedImage:storyMenuItemImagePressed 
                   ContentImage:starImage 
                highlightedContentImage:nil]; 
    AwesomeMenuItem *starMenuItem6 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage 
                  highlightedImage:storyMenuItemImagePressed 
                   ContentImage:starImage 
                highlightedContentImage:nil]; 
    AwesomeMenuItem *starMenuItem7 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage 
                  highlightedImage:storyMenuItemImagePressed 
                   ContentImage:starImage 
                highlightedContentImage:nil]; 
    AwesomeMenuItem *starMenuItem8 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage 
                  highlightedImage:storyMenuItemImagePressed 
                   ContentImage:starImage 
                highlightedContentImage:nil]; 
    AwesomeMenuItem *starMenuItem9 = [[AwesomeMenuItem alloc] initWithImage:storyMenuItemImage 
                  highlightedImage:storyMenuItemImagePressed 
                   ContentImage:starImage 
                highlightedContentImage:nil]; 

    NSArray *menus = [NSArray arrayWithObjects:starMenuItem1, starMenuItem2, starMenuItem3, starMenuItem4, starMenuItem5, starMenuItem6, starMenuItem7,starMenuItem8,starMenuItem9, nil]; 

    AwesomeMenu *menu = [[AwesomeMenu alloc] initWithFrame:[[[CCDirector sharedDirector] view] window].bounds menus:menus]; // PLS NOTE: referencing window 

    // customize menu 
    /* 
    menu.rotateAngle = M_PI/3; 
    menu.menuWholeAngle = M_PI; 
    menu.timeOffset = 0.2f; 
    menu.farRadius = 180.0f; 
    menu.endRadius = 100.0f; 
    menu.nearRadius = 50.0f; 
    */ 

    //menu.startPoint = CGPointMake(120.0, 240.0); 

    menu.delegate = self; 

    [[[CCDirector sharedDirector] view] addSubview:menu]; // PLS NOTE: referencing view 

} 
return self; 

}

希望你可以在自己的应用程序管理!