设置使得获取屏幕方法this.setIsTouchEnabled(true);
并且在sounrce——override/Implement Method中调用ccTouchesBegan/ccTouchesEnded/ccTouchesMoved方法
使用event.getX()获取
getY()的值原点为左上,使用
CGPoint temp=CGPoint.ccp(x,y);
CGPoint pos=CCDirector.sharedDirector().convertToGL(temp);
变换
上代码GameLayer
package com.example.test2;
import org.cocos2d.actions.interval.CCMoveTo;
import org.cocos2d.layers.CCLayer;
import org.cocos2d.nodes.CCDirector;
import org.cocos2d.nodes.CCSprite;
import org.cocos2d.types.CGPoint;
import android.view.MotionEvent;
//生成2个精灵对象
public class GameLayer extends CCLayer{
CCSprite player;
int i=0;
public GameLayer(){
//设置当前图层可点击
this.setIsTouchEnabled(true);
}
@Override
public boolean ccTouchesBegan(MotionEvent event) {
// TODO Auto-generated method stub
//从event中获取x/y的值,其中y的值是以左上为原点
float x=event.getX();
float y=event.getY();
//处理使得原点为左下
CGPoint temp=CGPoint.ccp(x,y);
CGPoint pos=CCDirector.sharedDirector().convertToGL(temp);
//生成名字为player的精灵
CCSprite player= CCSprite.sprite("player2.gif");
player.setPosition(pos);
this.addChild(player);
//精灵移动至地下
CGPoint target = CGPoint.ccp(x, 0);
CCMoveTo move=CCMoveTo.action(3, target);
player.runAction(move);
return super.ccTouchesBegan(event);
}
@Override
public boolean ccTouchesEnded(MotionEvent event) {
// TODO Auto-generated method stub
return super.ccTouchesEnded(event);
}
@Override
public boolean ccTouchesMoved(MotionEvent event) {
// TODO Auto-generated method stub
return super.ccTouchesMoved(event);
}
}