2011-11-20 8 views
0

タッチ上でY座標に沿って移動しなければならないスプライトがあります。 デフォルトのY座標に達したら移動を停止する必要があります。 私はsetposition()で試しましたが、アニメーションのように滑らかな動きをしません。 どうすればこのように滑らかにできますか?andengineで滑らかな動きで、ある場所から別の場所への接触後にスプライトを移動する方法は?

私はsetvelocity()を試しましたが、特定の座標で動きを止める方法はわかりません。

  @Override 
      public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, 
        final float pTouchAreaLocalX, final float pTouchAreaLocalY) { 

       if(pSceneTouchEvent.isActionDown()){ 
        //TOCCO DELLO SPRITE 

        PhysicsHandler physicsHandler = new PhysicsHandler(this); 
        this.registerUpdateHandler(physicsHandler); 
        physicsHandler.setVelocityY(-5f); 



        se.getChild(1).detachChild(this); 
        se.getChild(2).attachChild(this); 


       } 

私もパスを試しましたが、どのように動作するのかよく分かりませんでした。

EDIT

はジョンによると、私はMoveYModifierを使用しました。それは動作しますが、avdでは動きがぎくしゃくしているようです。私はすぐにデバイスで試してみるが、唯一のavdの問題ですか? 2 は、デバイス上でテストし、うまく機能

if(pSceneTouchEvent.isActionDown()){ 

        //TOCCO DELLO SPRITE 

        se.getChild(1).detachChild(this); 
        se.getChild(2).attachChild(this); 


        MoveYModifier mod = new MoveYModifier(3, getY(), pSceneTouchEvent.getY()- gap); 
        this.registerEntityModifier(mod); 


       } 

EDIT: 私はこの方法をやりました!とてもなめらか!

答えて

1

MoveModifier(詳細はhereを参照)を使用してください。

+0

それが動作します!どうもありがとう!しかしavdでは動きがぎくしゃくしているように見えます。私はすぐにデバイスで試してみるだろうが、あなたは唯一のavdの問題ですかyuou知っていますか? は、私はこの方法をやった: '場合(pSceneTouchEvent.isActionDown()){ \t \t \t // TOCCO DELLO SPRITE \t \t \t \t se.getChild(1).detachChild(この); \t \t \t se.getChild(2).attachChild(this); \t \t \t \t \t MoveYModifier新しい= MOD MoveYModifier(3、のgetY()、pSceneTouchEvent.getY() - ギャップ)。 \t this.registerEntityModifier(mod); \t \t \t} – NemoPhobia

+0

なぜあなたは 'this'をシーンに添付していますか? 'セ'とは何ですか?もう少し詳しく説明してください。そして、このコードを含むクラスは「スプライト」ですか?デバイス上で – Jong

+0

完璧!とてもなめらか!ありがとう – NemoPhobia

関連する問題