2

プロジェクトに awesomeMenu を追加したいのですが、Appdelegate.h 内の awesomemenu の 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 を操作する必要がありますか?

または2つのインターフェースを実装することは可能ですか?

4

1 に答える 1

1

AwesomeMenu を Cocos2d プロジェクトと組み合わせたい場合、AppDelegate.h から CCDirectorDelegate を削除する必要はありません。これは私がやったことであり、動作します:

  1. デフォルトの cocos2d テンプレートに基づいて新しいプロジェクトを作成します (最新の状態にしたい場合は、AwesomeMenu の github プロジェクトのローカル コピーを作成します)。
  2. AwesomeMenu のプロジェクト 2 サブディレクトリに追加: AwesomeMenu/AwesomeMenu (4 つのファイル内) および Images
  3. HelloWorldLayer.h と HelloWorldLayer.m の 2 つのファイルのみを変更します。

HelloWorldLayer.h (インポートの AwesomeMenu.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;

}

自分のアプリで管理できることを願っています!

于 2013-05-13T14:56:20.313 に答える