0

私はこのチュートリアル(http://www.raywenderlich.com/4666/how-to-create-a-hud-layer-with-cocos2d)に従ってみましたが、おそらくチュートリアルを使用していないことがわかりますそれらと同じことですが、ほぼ同じセットアップ用です。私は一歩一歩それに従ってきたと信じています。ただし、エラーが発生します (矢印で示される場所: <----) '不明なタイプ名 'settingsMenu'' と 'expected a type' がそれぞれ:

mainMenu.h:

//  mainMenu.h


#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import "Constants.h"
#import "SceneManager.h"
#import "settingsMenu.h"



@interface mainMenu : CCLayer {  
    settingsMenu * _settings; <----
}

@property (nonatomic, assign) BOOL iPad;

+ (id)scene;
- (id)initWithsettingsMenu:(settingsMenu *)settings; <----

@end

mainMenu.m:

//  mainMenu.m

#import "mainMenu.h"  
#import "gameData.h"
#import "gameDataParser.h"
#import "SimpleAudioEngine.h"
#import "settingsMenu.h"

@implementation mainMenu

@synthesize iPad;

+ (id)scene {
    CCScene *scene = [CCScene node];
    settingsMenu *settings = [settingsMenu node];
    [scene addChild:settings z:1];
     mainMenu *menuLayer = [[[mainMenu alloc] initWithsettingsMenu:settings] autorelease];
     [scene addChild:menuLayer];

    return scene;
}

settingsMenu.h:

//  settingsMenu.h

#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import "Constants.h"
#import "SceneManager.h"

@interface settingsMenu: CCLayer {
    CCMenuItem *_musicOn;
    CCMenuItem *_musicOff;
    CCMenuItem *_invertControlsOn;
    CCMenuItem *_invertControlsOff;
}

@property (nonatomic, assign) BOOL iPad;
@property (nonatomic, assign) BOOL settings;

@end

settingsMenu.m:

//  settingsMenu.m


#import "settingsMenu.h"
#import "gameData.h"
#import "gameDataParser.h"
#import "SimpleAudioEngine.h"
#import "mainMenu.h"


@implementation settingsMenu

- (id)init{
    if( (self=[super init])) {

        // Determine Screen Size
        CGSize screenSize = [CCDirector sharedDirector].winSize;

        self.iPad = UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad;

        if (self.iPad){
            CCSprite *background = [CCSprite spriteWithFile:@"settingsiPad.png"];
            background.position = ccp(screenSize.width/2, screenSize.height/2);
            [self addChild:background];
        }

        else if (screenSize.height > 490){
            CCSprite *background = [CCSprite spriteWithFile:@"settingsiPhoneFive.png"];
            background.position = ccp(screenSize.width/2, screenSize.height/2);
            [self addChild:background];
        }

        else{
             CCSprite *background = [CCSprite spriteWithFile:@"settingsiPhone.png"];
             background.position = ccp(screenSize.width/2, screenSize.height/2);
            [self addChild:background];
        }
     [self addButtons];

    }
    return self;
}

御時間ありがとうございます!これ以上コードを投稿する必要はないと思いますが、この問題を引き起こしている可能性のある場所が他にある場合はお知らせください。コードを投稿します。

4

1 に答える 1

1

gameLayer .h: (不要なもののほとんどを取り出しました)

//  GameLayer.h

#import <Foundation/Foundation.h>
#import "cocos2d.h"

@interface GameLayer : CCLayer {
    CCLayer *HudLayer;
}
@property (nonatomic, retain) CCLayer *HudLayer;

+(id)scene;
@end

次に、.m で

@synthesize HudLayer;

次にinit

//HUD Layer setup

        HudLayer = [[[CCLayer alloc] init] autorelease];
        [self addChild:HudLayer];
             //add stuff in the HUD here...


        CCMenuItem *Mainmenu = [[[CCMenuItemFont itemWithString:@"Main Menu" target:self selector:@selector(MainMenu:)] retain]autorelease];

        Mainmenu.position = ccp(size.width /2-Mainmenu.rect.size.width,size.height /2-Mainmenu.rect.size.height);
        CCMenu *Hudmenu = [CCMenu menuWithItems: Mainmenu, nil];
        [HudLayer addChild:Hudmenu];
    //End HUD Layer setup
于 2012-10-07T17:28:24.063 に答える