2016-09-20 9 views
3

私はCameraInputControllerのピンチズームを整理しようとしています。私ならばこれが正常に動作しますlibGDXのピンチズームをバインドするにはどうすればよいですか?

public boolean zoom (float amount) { 
if(camera.position.len() < 3 && amount > 0) 
{ 
    return false; 
} 
if(camera.position.len() > 10 && amount < 0) 
{ 
    return false; 
} 
if (!alwaysScroll && activateKey != 0 && !activatePressed) 
    return false; 
Gdx.app.log("zoom", amount + ""); 
camera.translate(tmpV1.set(camera.direction).scl(amount)); 
if (scrollTarget) 
    target.add(tmpV1); 
if (autoUpdate) 
    camera.update(); 
return true; 

}

:私は、私はズーム()関数内のコードのこのビットを置くことが起源のズームイン、ズームアウトしたいのですが、3と10の間に制限すること(ズームボタンなど)ズーム機能を呼び出すだけですが、ズームを動かすと3回までズームインできます。ズームアウトすると、10に近づくとかなり急激にジャンプします。不思議なことに、私はこれらの境界を持っていない場合、ピンチズームは非常に滑らかです。

I出力量変数は、その後、ピンチズームが私の数字のかなりの範囲を与えた場合、このような何かズームアウト:

-3.4762511  
3.425479 
-3.386308 
3.353984 

と、この中にズーム:

3.6231816 
-3.553997 
3.8673449 
-3.81199 

私はCameraGestureListener内のzoom()関数を見ています。その量値は変化する負荷でもあります。私がpinch()関数を見ると、それが呼び出されるたびにpointer2の位置が1番目と2番目の指の位置の間で交互になります。

これはバグでしょうか?誰でも何が起こっているか考えていますか?そして私はこれをどのように並べ替えることができますか?

+0

デモプロジェクトを投稿できますか?私は問題を再現できません。 – pr0gramist

答えて

0

私はそれを自分で見つけました!あなたがカメラの位置を確認し、カメラコントローラ内のリスナーではなく、render()関数で必要な場所に移動するだけなら、すべて正常に動作します。私はそれを幾分複雑にしていたと思う。

関連する問題