0

私は貧しくて新しいiOSプログラマーなので、これを電話でテストすることはできません。そのため、これがシミュレーターの問題なのか、それとも何の問題なのかわかりません。また、cocos2dは非常に新しいので、ここで我慢してください。ゲームの開始画面で作業しています。左上と右上に雲のある背景画像を作成しました。次に、CCMenuItemLabelを各クラウドに配置して、すべてがきれいに見えるようにします。それは途方もなく機能します....ボタンのいずれかをクリックしようとするまで、その場合は何も起こりません!これが私が今持っているコードです。

MainMenu:CCScene

@implementation MainMenu

-(id) init {

  // Play Label to left cloud
  CCLabelTTF * playLabel = [CCLabelTTF labelWithString:@"Play" fontName:@"Marker Felt" fontSize:24];
  playLabel.color = ccBLACK;
  CCMenuItemLabel * play = [CCMenuItemLabel itemWithLabel:playLabel target:self selector:@selector(playGame)];
  CCMenu * playmenu = [CCMenu menuWithItems:play, nil];
  playmenu.position = ccp(s.width/5,s.height - 55);
  [self addChild:playmenu z:10];

  // Options label to right cloud
  CCLabelTTF * optionsLabel = [CCLabelTTF labelWithString:@"Options" fontName:@"Marker Felt" fontSize:24];
  optionsLabel.color = ccBLACK;
  CCMenuItemLabel * options = [CCMenuItemLabel itemWithLabel:optionsLabel target:self selector:@selector(options)];
  CCMenu * optmenu = [CCMenu menuWithItems:options, nil];
  optmenu.position = ccp(s.width - s.width/5,s.height - 55);
  [self addChild:optmenu z:10];

  // Add background at z:-1 plus other

}

@end

sは私の画面サイズで、残りはかなり簡単なようです。これはすべて、CCSceneを拡張するMainMenu.mの内部にあります。今のところ、クリックが機能することを確認するために、私のセレクターは単なるNSLogです。どちらにも実行されることはありません。

私が試したこと:

cocos2dフォーラムからの提案に基づいて、両方のセレクターをに変更し@selector(playGame:)、次にメソッドをに変更しまし-(void)playGame:(id) senderたが、それも機能しませんでした。

4

3 に答える 3

1

結局、同じテンプレートを使用して新しいプロジェクトを開始しました。上からまったく同じコードを入れて実行しました。このプロジェクトで動作します。それで、私は古いプロジェクトからこのプロジェクトに物事をコピーして貼り付け始め、何がそれを壊したのかを確かめようとしました、そして結局何もそれを壊しませんでした。ビルド段階か何かだったに違いないと思いますが、今はすべて機能しています。

于 2012-07-27T19:47:12.870 に答える
0

今、私はcocos2D2.0サンプルで同じコードを使用しました。それはうまく機能しています。

レイヤーのタッチを有効にしていないと思います。CCLayerのinitメソッドでこのコードを使用します。

 self.isTouchEnabled = YES;
于 2012-07-26T06:08:09.103 に答える
0

古いスレッドを知っていますが、今日も同じ問題に直面しました。

これが私がそれを機能させるためにしなければならなかったことです、

  • の位置を設定CCMenuItemLabel * playしますccp(s.width/5,s.height - 55)
  • の位置をCCMenu *playmenuに変更しCGPointZeroます。

play.position = ccp(s.width/5,s.height - 55);
playmenu.position=CGPointZero;
于 2015-02-11T07:43:53.257 に答える