明らかな何かが欠けていると思いますが、CCMenuItemFont のラベルを取得する方法がわかりません。
背景 iPad 用のシンプルなハングマン ゲームを作成しています。次の推測を入力するために、26 個のボタン (アルファベットの各文字に 1 つ) を UI に追加し、それらすべてを同じイベント ハンドラーに接続しました。
ここで、イベント ハンドラー内で、ボタンのラベルを取得して現在の推測を更新したいと考えていますが、CCMenuItemFont は明らかにtext
orに応答しませんlabel
。
問題 - CCMenuItem のラベルを取得するには、どのような方法を使用できますか?
コード ボタンを作成するためのコード:
-(void)addButtons {
NSArray* charArray = [NSArray arrayWithObjects:
@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",
@"L",@"M",@"N",@"O",@"P",@"Q",@"R",
@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z", nil];
[CCMenuItemFont setFontName:@"Marker Felt"];
[CCMenuItemFont setFontSize:45];
NSMutableArray* buttonArray = [NSMutableArray array];
for (unsigned int i=0; i < [charArray count]; ++i) {
CCMenuItemLabel* buttonMenuItem = [CCMenuItemFont
itemWithString:(NSString*)[charArray objectAtIndex:i]
target:self selector:@selector(buttonTapped:)];
buttonMenuItem.color = ccBLACK;
buttonMenuItem.position = ccp(60 + (i/13)*40, 600 - (i%13)*40);
[buttonArray addObject:buttonMenuItem];
}
CCMenu *buttonMenu = [CCMenu menuWithArray:buttonArray];
buttonMenu.position = CGPointZero;
[self addChild:buttonMenu];
}
そしてイベントハンドラ:
- (void)buttonTapped:(id)sender {
// Get a reference to the button that was tapped
CCMenuItemFont *button = (CCMenuItemFont *)sender;
[_guess addObject:[button text]]; // this throws an exception because text is the wrong method
[self paintCurrentGuess];
}