Search code examples
androidcocos2d-android

Click event of ccsprite in android


I am new in cocos2d.

I am working on a game.

And I want to do some logging on click event on spites of the layer.

I do not know which method is called when we click on some sprite of the layer.

I getting the control in the ccTouchesBegan(MotionEvent event) but I am unable to find which sprite is clicked.

Here is the code :

CCSprite bridge = RetrivingImagesFromSDcard.getImage(Constants.scrooll_Sprites[tileDetailsList
                                                                                                           .get(tileID).tileSpriteID3]);
                            addChild(
                                    bridge,
                                    tileDetailsList.get(tileID).tileSpriteID3Zorder,tileDetailsList.get(tileID).tileSpriteID3Tag);
                            bridge.setPosition(tilesBG.getPosition().x,tilesBG.getPosition().y);
                            bridge.setRotation(tileDetailsList.get(tileID).tileAngle);
                            bridge_Sprite_ArrayList.add(bridge);

and here is the touch event

@Override
    public boolean ccTouchesBegan(MotionEvent event) {
        if (flagTap == false)
        {
            tapCount = tapCount+1;
            tapCountStr = Integer.toString(tapCount);
            Log.e("TapCount", "@@@@@@@@@@@@@@@@@"+tapCountStr);

            map.put(GameLayer.timVal,tapCountStr);
            System.out.println(map);
            //CHANGES DONE 8 FEB

            try
            { 

                GameLog gameLogObj = new GameLog();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
                String currentDateandTime = sdf.format(new Date());
                GameLayer.logLevelArgument = "INFO";
                GameLayer.logMsgArgument = "TAPBEFORELAUNCH";
                GameLayer.roundStr = Integer.toString(Constants.level);
                TrainMapLayer.flagLogType = true;  
                String MAPSIZE = ""+Constants.numberOfColumns+"x"+Constants.numberOfRows;

                gameLogObj.OpenAndAppendData(currentDateandTime, "UserId value", "sessionID Value",
                        " gameID Value", GameLayer.roundStr, "RoundDiscriptor", GameLayer.logMsgArgument,GameLayer.logLevelArgument,TrainMapLayer.flagLogType,MAPSIZE,"");


            }



            catch (Exception e) {
                Log.e("Exception in TAPBEFORELAUNCH",">>>>>>>>>>>>"+e);
                GameLog gameLogObj = new GameLog();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
                String currentDateandTime = sdf.format(new Date());
                GameLayer.logLevelArgument = "ERROR";
                GameLayer.logMsgArgument = e.toString();
                GameLayer.roundStr = Integer.toString(Constants.level);
                TrainMapLayer.flagLogType = false; 
                String MAPSIZE = ""+Constants.numberOfColumns+"x"+Constants.numberOfRows;

                gameLogObj.OpenAndAppendData(currentDateandTime, "UserId value", "sessionID Value",
                        " gameID Value", GameLayer.roundStr, "RoundDiscriptor", GameLayer.logMsgArgument,GameLayer.logLevelArgument,TrainMapLayer.flagLogType,MAPSIZE,"" );

            }  

            //CHANGES DONE 7 FEB

        }
        else
        {
            Log.v("In else condition ccTouchesBegan", "))))))))))))))))");

        }
        return true;
    }

Please help me in this


Solution

  • you can use CCMenuItemImage for the touch. Like :

    CCMenuItemImage xyz= CCMenuItemImage.item("start.png", "start.png",this, "to_Where_You_Want_To_Replace_Your_Scene");