1

I`m new to cocos2d library, I worked before with libgdx and pure openGL. How can I handle a touch event in Cocos2d for Android?

CodeSmile
  • 64,284
  • 20
  • 132
  • 217
Felix
  • 159
  • 2
  • 3
  • 13

2 Answers2

3

The 4 methods for handling touches on android are defined as follows:

public boolean ccTouchesBegan(MotionEvent event);

public boolean ccTouchesMoved(MotionEvent event);

public boolean ccTouchesEnded(MotionEvent event);

public boolean ccTouchesCancelled(MotionEvent event);

These are the listeners you should use.

And also add below line in constructor of your CCLayer class to enable touch event.

this.setIsTouchEnabled(true); 
Kalpesh
  • 1,767
  • 19
  • 29
Dair
  • 15,910
  • 9
  • 62
  • 107
0

To start touch event you have to first to set variable

isTouchEnabled_=true;

or

setIsTouchEnabled(true);

After that touch will work

You can use methods as:-

  @Override
      public boolean ccTouchesBegan(MotionEvent event) {
}
      @Override
    public boolean ccTouchesMoved(MotionEvent event) {
}

      @Override
        public boolean ccTouchesEnded(MotionEvent event) {
}
      @Override
      public boolean ccTouchesCancelled(MotionEvent event) {
}

I have used this like as in CCColorLayer:-

protected GameLayer(ccColor4B color) {
        super(color);
        // TODO Auto-generated constructor stub
        isTouchEnabled_=true;
}

      @Override
          public boolean ccTouchesBegan(MotionEvent event) {
    }
Karan Rana
  • 638
  • 4
  • 14