2016-05-21 4 views
0

最近Libgdxに飛び込んだ。私のオンタッチは半分しか働かない。私はタッチが、私は以下の実行時のように検出されている知っている:Libgdxキャラクターの動き

@Override 
    public boolean touchDown(int screenX, int screenY, int pointer, int button) { 
player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true); 

     return true; 
    } 

私のキャラクターは、このようにタッチに私を証明し、右に実行し、セットアップ正しく、検出されていません。

私が抱えている問題は、ユーザーが画面上のどこに触れるかによって左右に動かすことです。ユーザーが右に押すと、文字は右に移動する必要があり、左に押すとx軸上を左に移動する必要があります。

@Override 
public boolean touchDown(int X, int Y, int pointer, int button) { 

// player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true); 
    if( player.getX()> X){ 
     player.b2body.applyLinearImpulse(new Vector2(5.1f, 0), player.b2body.getWorldCenter(), true); 
    } 

    else if( player.getX()< X){ 
     player.b2body.applyLinearImpulse(new Vector2(-5.1f, 0), player.b2body.getWorldCenter(), true); 
    } 
    return true; 
} 

しかし、私のキャラクターが移動していない私のコードで、私は私が間違って上の選手の位置を確認しています推測:私はこれを行うために書かれていることは以下の通りです。誰でも何をどうやってアドバイスしてもらえますか?これは間違っていますか?

答えて

0

タッチ位置は画面座標で示されます。あなたのプレイヤーはあなたが作成したどの世界座標にも存在します。カメラを使用して画面の座標を世界座標に変換するには、Camera.unprojectを使用する必要があります。

+0

それは私の動きを修正するために私は以下を使用して問題を抱えている誰のために: http://gamedev.stackexchange.com/questions/72448/how-to-match-user-click-and-the -sprite-object-position-in-libgdx-framework – Phil3992

関連する問題