0
안녕하세요 저는 여기에서 엔진을 사용하고 있습니다. 버튼을 클릭하면 2 개의 스프라이트를 움직일 필요가 있습니다. 스프라이트는 잘 움직이고 있지만, 이제는 두 스프라이트가 모두 반대 방향으로 움직입니다. 스프라이트는 움직일 때 화면 중앙으로 이동합니다. 두 개의 스프라이트가 100 개의 거리가 있으면 애니메이션을 멈추고 싶습니다. 다음 코드를 사용했지만 스프라이트 위치를 계산하려고 시도했지만 움직이는 시간은 움직이지 않습니다. 움직이지 않는 스프릿 포지션이 있으면 도움이됩니다.andengine에서 스프라이트를 이동하는 방법
final float centerX = (CAMERA_WIDTH - this.mPaddleTextureRegionbtn.getWidth());
final float centerY = (CAMERA_HEIGHT - this.mPaddleTextureRegionbtn.getHeight())/2;
paddle = new Sprite(centerX, centerY, this.mPaddleTextureRegionbtn, this.getVertexBufferObjectManager());
final PhysicsHandler physicsHandler = new PhysicsHandler(paddle);
paddle.registerUpdateHandler(physicsHandler);
scene.attachChild(paddle);
final AnimatedSprite banana = new AnimatedSprite(0, centerY, this.mBananaTextureRegion, this.getVertexBufferObjectManager());
banana.animate(100);
scene.attachChild(banana);
final float centerX1 = (CAMERA_WIDTH - this.mPaddleTextureRegion1.getWidth())/38;
final float centerY1 = (CAMERA_HEIGHT - this.mPaddleTextureRegion1.getHeight()) /7;
ButtonSprite moveRightButton = new ButtonSprite(centerX1, centerY1, this.mPaddleTextureRegion1, this.getVertexBufferObjectManager(), new OnClickListener() {
@Override
public void onClick(ButtonSprite pButtonSprite, float pTouchAreaLocalX,
float pTouchAreaLocalY) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(Pong.this, "Haiii-------------", Toast.LENGTH_LONG).show();
MoveXModifier mod = new MoveXModifier(2, banana.getX(), paddle.getX()-100);
banana.registerEntityModifier(mod);
MoveXModifier mod1 = new MoveXModifier(2, paddle.getX(),banana.getX()+100);
paddle.registerEntityModifier(mod1);
}
});
}
});
scene.attachChild(moveRightButton);
scene.registerTouchArea(moveRightButton);
scene.setTouchAreaBindingOnActionDownEnabled(true);
thnku. 시도해 볼게. – user1089640