我是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);
}
答案 0 :(得分:0)
我解决了。问题出现是因为cocos2d的版本.cocos2d的更高版本解决了这个问题。
答案 1 :(得分:0)
您可以使用菜单并在其中指定选择器,因此您无需检查计划方法中的点击
我使用了menues作为
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();
或
menu.alignItemsHorizontally();
或
int i=0;
for (CCNode child : menu.getChildren()) {
if(i==0)
{
child.setPosition( x1,y1);
}else if(i==1)
{
child.setPosition( x2,y2);
}
i++;
}
现在添加菜单
addChild(menu,20);
和方法定义为:
public void menuCallbackResume(Object sender) {
}
public void menuCallbackrestart(Object sender) {
}
菜单点击时自动调用的方法
答案 2 :(得分:0)
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("&&&&&&&&&&&&&&&&&&&&&&&&&&&");
}