在android中添加cocos2d菜单

在android中添加cocos2d菜单,android,cocos2d-android,Android,Cocos2d Android,我是android新手。我正在与cocos2d合作添加菜单。我可以成功添加菜单。但无法识别所选的菜单项。我已在下面给出了我的代码。Plz帮助 for(int i=0;i<len;i++){ asn = CCMenuItemImage.item("ans_btn.png", "ans_btn_glow.png", "ans_btn.png", this, "check"); asn.setTag(i+1); CCMenuItem[]

我是android新手。我正在与cocos2d合作添加菜单。我可以成功添加菜单。但无法识别所选的菜单项。我已在下面给出了我的代码。Plz帮助

for(int i=0;i<len;i++){
              asn = CCMenuItemImage.item("ans_btn.png", "ans_btn_glow.png", "ans_btn.png", this, "check");
        asn.setTag(i+1);
        CCMenuItem[]item={asn};
        menu = CCMenu.menu(item);
        menu.setPosition(CGPoint.ccp(170,val));
        addChild(menu);
        val+=60;
        }
public void check(){
    //  CCMenuItem answ=(CCMenuItem)sender;
        String allert= null;
        //CCMenuItem answ = sender;
        //int check = answ.getTag();
        int i =asn.getTag();
        String str = Integer.toString(i);
        String str1 = Integer.toString(rans);
        if(i== rans)
            allert = "right";
        else
            allert= "wrong";
        CCLabel pop = CCLabel.makeLabel(str1, "DroidSans", 18);
        pop.setPosition(CGPoint.ccp(200, 50));
        addChild(pop);
        CCLabel pop1 = CCLabel.makeLabel(str, "DroidSans", 18);
        pop1.setPosition(CGPoint.ccp(200, 100));
        addChild(pop1);
    }

for(int i=0;i我解决了这个问题。这个问题是因为cocos2d的版本。cocos2d的更高版本解决了这个问题。

您可以使用菜单并在其中指定一个选择器,因此您不需要选中“按计划方法”中的“单击”

我把这些菜单当作

CCSprite ResumeButton1=CCSprite.sprite("resume.png");
    CCSprite ResumeButton2=CCSprite.sprite("resume.png");
    CCSprite ResumeButton3=CCSprite.sprite("resume.png");
    CCSprite restartButton1=CCSprite.sprite("restart.png");
    CCSprite restartButton2=CCSprite.sprite("restart.png");
    CCSprite restartButton3=CCSprite.sprite("restart.png");     


  CCMenuItemSprite item1 = CCMenuItemSprite.item(ResumeButton1,ResumeButton2, ResumeButton3, this, "menuCallbackResume");
  CCMenuItemSprite item2 = CCMenuItemSprite.item(restartButton1,restartButton2, restartButton3, this, "menuCallbackrestart");

  CCMenu menu = CCMenu.menu(item1,item2);
您可以根据需要在适当的位置使用菜单

menu.alignItemsVertically();

现在添加菜单

  addChild(menu,20);
方法的定义如下:

    public void menuCallbackResume(Object sender) {

  }
    public void menuCallbackrestart(Object sender) {

  }
单击菜单时自动调用这些方法

            CCMenuItem newGame = CCMenuItemLabel.item("New Game", this, "newGame");
    CCMenuItem level = CCMenuItemLabel.item("Level", this, "level");

    CCMenuItem items[] = { newGame, level};
    CCMenu menu = CCMenu.menu(items);
    menu.alignItemsVertically(75);
    this.addChild(menu);
    CCTouchDispatcher.sharedDispatcher().addTargetedDelegate(this, 0, true);
    this.setIsTouchEnabled(true);


public void level(Object sender) {
    System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    CCScene scene = LevelScreen.ccScene();
    CCDirector.sharedDirector().pushScene(scene);
    System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&");
}

public void newGame(Object sender) {
    System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    CCScene scene = GameLayer.scene();
    CCDirector.sharedDirector().pushScene(scene);
    System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&");
}
    public void menuCallbackResume(Object sender) {

  }
    public void menuCallbackrestart(Object sender) {

  }
            CCMenuItem newGame = CCMenuItemLabel.item("New Game", this, "newGame");
    CCMenuItem level = CCMenuItemLabel.item("Level", this, "level");

    CCMenuItem items[] = { newGame, level};
    CCMenu menu = CCMenu.menu(items);
    menu.alignItemsVertically(75);
    this.addChild(menu);
    CCTouchDispatcher.sharedDispatcher().addTargetedDelegate(this, 0, true);
    this.setIsTouchEnabled(true);


public void level(Object sender) {
    System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    CCScene scene = LevelScreen.ccScene();
    CCDirector.sharedDirector().pushScene(scene);
    System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&");
}

public void newGame(Object sender) {
    System.out.println("!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    CCScene scene = GameLayer.scene();
    CCDirector.sharedDirector().pushScene(scene);
    System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&&");
}