0
我試過按照這個教程(http://www.raywenderlich.com/4666/how-to-create-a-hud-layer-with-cocos2d)但是你可能會告訴我我沒有用這個教程來做與他們相同的事情,而是爲了一個幾乎相同的設置。我相信我一直在跟着它。但是我得到的誤差(由箭頭示出的位置:< ----) '未知類型名稱 'settingsMenu'' 和 '分別預期類型':HUD教程爲cocos2d
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。米:
// 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;
}
感謝您的時間!我不認爲有必要發佈任何更多的代碼,但如果有其他地方可能導致這個問題,請讓我知道,我會張貼代碼。
然後我得到兩個Apple Mach-O鏈接器錯誤... 體系結構i386的未定義符號: 「_OBJC_CLASS _ $ _ gameDataParser」,引用自: 設置菜單中的objc-class-ref ld:未找到體系結構的符號i386 clang:錯誤:鏈接器命令失敗,退出代碼1 (使用-v來查看調用) – simonthumper
最奇怪的部分是xCode是一種識別類,因爲它着色它藍色,但只要我編譯它拋出了這些錯誤:/ – simonthumper
嗯,我不太清楚你爲什麼不要只有'_settings'成爲CCLayer。我的意思是如果它是一個HUD類型的設置。 – stenger96