- ackage org.game.eventtouch;
- import org.cocos2d.layers.CCLayer;
- import org.cocos2d.nodes.CCDirector;
- import org.cocos2d.types.CGPoint;
- import android.view.MotionEvent;
- public class GameLayout extends CCLayer {
- public GameLayout(){
- //确定布景是否接受触摸事件
- this.setIsTouchEnabled(true);
- }
- @Override
- public boolean ccTouchesBegan(MotionEvent event) {
- // TODO 自动生成的方法存根
- float x=event.getX();
- float y=event.getY();
- CGPoint p1=CGPoint.ccp(x,y);
- CGPoint p2=CCDirector.sharedDirector().convertToGL(p1);
- System.out.println("p1.y="+p1.y);
- System.out.println("p2.y="+p2.y);
- System.out.println("begin");
- return super.ccTouchesBegan(event);
- }
- @Override
- public boolean ccTouchesCancelled(MotionEvent event) {
- // TODO 自动生成的方法存根
- System.out.println("cancelled");
- return super.ccTouchesCancelled(event);
- }
- @Override
- public boolean ccTouchesEnded(MotionEvent event) {
- // TODO 自动生成的方法存根
- System.out.println("ended");
- return super.ccTouchesEnded(event);
- }
- @Override
- public boolean ccTouchesMoved(MotionEvent event) {
- // TODO 自动生成的方法存根
- System.out.println("moved");
- return super.ccTouchesMoved(event);
- }
- }
为了得到适合的坐标,必须把Event得到的x,y坐标通过CCDirector.sharedDirector().convertToGL(p1);进行转换。而且这个方法得到的是一个CGPoint对象。所以还必须通过CGPoin得到所要的x,y