이 터치 이벤트는 절대 발생하지 않습니다. 필자는 예제와 소스 코드를 살펴 보았고, 지금 내가 원하는 것을 수행하는 최선의 방법에 약간 혼란 스럽다.andEngine에서 터치 리스너/이벤트 및 완화 기능을 올바르게 사용하는 방법
장면에 스프라이트를 그립니다. 그 스프라이트가 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);
모든 설명이 유용 할 것입니다. 감사합니다.
답변을 찾았습니다. 그러나 나는 새롭다. 그래서 나는 내 자신의 게시물에 대답하기 위해 4 시간을 기다려야한다. –