jteezy answer , touchevents Sprite. , IOnSceneTouchListener. onSceneTouchEvent (Scene pScene, final TouchEvent pSceneTouchEvent). yourscene.setOnSceneTouchListener(this);
:
public class GameManager implements IOnSceneTouchListener{
private boolean mSelected = false;
private boolean mThrown = false;
private float mX;
private float mY;
private float velX;
private float velY;
private TouchEvent mTouchEvent[] = {null, null, null, null, null};
callThatMethodSomeWhere(){
mScene.setOnSceneTouchListener( this );
mİşaretçiSprite = new Sprite( 0, 0, mİşaretçiTextureRegion, mEngine.getVertexBufferObjectManager() );
}
@Override
public boolean onSceneTouchEvent(Scene pScene, final TouchEvent pSceneTouchEvent)
{
if( pSceneTouchEvent.isActionDown() && mİşaretçiSprite.contains( pSceneTouchEvent.getX() , pSceneTouchEvent.getY())){
mX = pSceneTouchEvent.getX();
mY = pSceneTouchEvent.getY();
mSelected = true;
}
else if( pSceneTouchEvent.isActionMove() && mSelected ){
if( mTouchEvent[0] == null ){
mTouchEvent[0] = pSceneTouchEvent;
}else if( mTouchEvent[1] == null ){
mTouchEvent[1] = pSceneTouchEvent;
}else if( mTouchEvent[2] == null ){
mTouchEvent[2] = pSceneTouchEvent;
}else if( mTouchEvent[3] == null ){
mTouchEvent[3] = pSceneTouchEvent;
}else if( mTouchEvent[4] == null ){
mTouchEvent[4] = pSceneTouchEvent;
}else{
velX = mTouchEvent[4].getX() - mX;
velY = mTouchEvent[4].getY() - mY;
mThrown = true;
mSelected = false;
Body.applyForceToCenter( velX*10, velY*10);
}
}
else if ( pSceneTouchEvent.isActionUp() && mSelected ){
velX = pSceneTouchEvent.getX() - mX;
velY = pSceneTouchEvent.getY() - mY;
mBody.applyForceToCenter( velX*10, velY*10);
mThrown = true;
}
return false;
}
: , , , , . velX velY , .