このタッチイベントは発生しません。私はサンプルとソースコードを調べて、今私が望むことを実行する最良の方法について少し混乱しています。andEngineでtouch listener/eventとease機能を正しく使用する方法
シーンにスプライトを描画します。私はそのスプライトをEaseFunctionでusersタッチイベントの座標に移動させたいと思います。
これは、これまでのコードです:私はタッチリスナーとコード//はそれが正しい実装しようとどこ
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);
任意の明確化は、非常に有用だろう。 はこの作品あなた
私は答えを見つけました。しかし、私は新しいです。だから自分の投稿に答えるのに4時間待たなければならない。 –