это событие касания никогда не срабатывает.Я просматривал примеры и исходные коды и теперь немного запутался в выборе лучшего способа делать то, что я хочу.
Я рисую спрайт на сцене.Я хочу, чтобы этот спрайт переместился с EaseFunction в координаты события касания пользователя.
На данный момент это код:
private static final int CAMERA_WIDTH = 720;
private static final int CAMERA_HEIGHT = 480;
// ===========================================================
// Fields
// ===========================================================
private Camera mCamera;
private BitmapTextureAtlas mTexture;
private TextureRegion mFaceTextureRegion;
// ===========================================================
// Constructors
// ===========================================================
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods for/from SuperClass/Interfaces
// ===========================================================
@Override
public Engine onLoadEngine() {
this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));
}
@Override
public void onLoadResources() {
this.mTexture = new BitmapTextureAtlas(64, 32, TextureOptions.BILINEAR);
this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mTexture, this, "gfx/boxface.png", 0, 0);
this.getEngine().getTextureManager().loadTexture(this.mTexture);
}
@Override
public Scene onLoadScene() {
this.getEngine().registerUpdateHandler(new FPSLogger());
final Scene scene = new Scene();
scene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f));
final int x = (CAMERA_WIDTH - this.mFaceTextureRegion.getWidth()) / 2;
final int y = (CAMERA_HEIGHT - this.mFaceTextureRegion.getHeight()) / 2;
final Sprite face = new Sprite(x, y, this.mFaceTextureRegion);
scene.attachChild(face);
face.setPosition(134, 200);
// здесь я пытаюсь реализоватьсенсорный слушатель и код // это правильно?
scene.setOnAreaTouchListener(new IOnAreaTouchListener() {
//@Override
public boolean onAreaTouched(TouchEvent pSceneTouchEvent,ITouchArea pTouchArea, float pTouchAreaLocalX,float pTouchAreaLocalY) {
if(pSceneTouchEvent.isActionDown()) {
int facePosX = (int) (pSceneTouchEvent.getX() - face.getWidth() / 2);
int facePosY = (int) (pSceneTouchEvent.getY() - face.getHeight() / 2);
face.registerEntityModifier(new MoveModifier(500, face.getX(), facePosX, face.getY(),facePosY,EaseQuadIn.getInstance()));
}
return false;
}
});
return scene;
}
@Override
public void onLoadComplete() {
}
наконец, я уверен, что мне нужно использовать pScene.registerTouchArea (face);и pScene.setTouchAreaBindingEnabled (true);
любые разъяснения были бы очень полезны.спасибо