AwesomeMenu を Cocos2d プロジェクトと組み合わせたい場合、AppDelegate.h から CCDirectorDelegate を削除する必要はありません。これは私がやったことであり、動作します:
- デフォルトの cocos2d テンプレートに基づいて新しいプロジェクトを作成します (最新の状態にしたい場合は、AwesomeMenu の github プロジェクトのローカル コピーを作成します)。
- AwesomeMenu のプロジェクト 2 サブディレクトリに追加: AwesomeMenu/AwesomeMenu (4 つのファイル内) および Images
- 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;
}
自分のアプリで管理できることを願っています!