Cocos2d-android (06) 屏幕触摸事件及坐标转换

为屏幕添加触摸事件,将左上角坐标转换为左下角坐标

 1 package com.arlen.cocos2d.touch01;

 2 

 3 import org.cocos2d.layers.CCLayer;

 4 import org.cocos2d.nodes.CCDirector;

 5 import org.cocos2d.types.CGPoint;

 6 

 7 import android.view.MotionEvent;

 8 

 9 public class GameLayer extends CCLayer {

10 

11     // 接受用户的触摸事件,首先必须对当前图层进行设置

12 

13     public GameLayer() {

14         this.setIsTouchEnabled(true);

15     }

16 

17     // 当用户开始触摸事执行该方法

18     @Override

19     public boolean ccTouchesBegan(MotionEvent event) {

20 

21         // 以屏幕的左上角为原点

22         float x = event.getX();

23         float y = event.getY();

24 

25         CGPoint point1 = CGPoint.ccp(x, y);

26         // 将左上角坐标转换为左下角坐标

27         CGPoint point2 = CCDirector.sharedDirector().convertToGL(point1);

28         System.out.println("ccTouchesBegan:");

29         System.out.println("左上角坐标:" + point1.x + "," + point1.y);

30         System.out.println("左下角坐标" + point2.x + "," + point2.y);

31         

32         return super.ccTouchesBegan(event);

33     }

34 

35     // 当用户手指离开屏幕是执行此方法

36     @Override

37     public boolean ccTouchesEnded(MotionEvent event) {

38         System.out.println("ccTouchesEnded");

39         return super.ccTouchesEnded(event);

40     }

41 

42     // 当用户手指在屏幕上移动的时候执行此方法

43     @Override

44     public boolean ccTouchesMoved(MotionEvent event) {

45         System.out.println("ccTouchesMoved");

46         return super.ccTouchesMoved(event);

47     }

48 }

 

你可能感兴趣的:(android)