2017-02-15 12 views
2

私はlibGdxで最初の試合をしています。私はi線が2点間の直接線を引くことができていますが、アニメーションの描画を持っている必要があり、ここでthis videolibGDXのラインアニメーション

Vector2 start = new Vector2(10, 10); 
Vector2 end = new Vector2(100,100); 
ShapeRenderer shapeRenderer=new ShapeRenderer(); 
shapeRenderer.setProjectionMatrix(cam.combined); 
shapeRenderer.begin(ShapeRenderer.ShapeType.Line); 
shapeRenderer.setColor(Color.BLACK); 
shapeRenderer.line(start, end); 
shapeRenderer.end(); 

をdrawlineに私のコードであるようなアニメーションを描画しなければなりません。

助けてくださいか?

+1

あなたは7K以上の評価スコアを持っていて、試してみました何私達を示すことなく、質問をしますか? – munyul

+0

小規模なコードサンプルのおかげでラインをアニメートするだけで、4つの座標値を動的(変更)にするだけです。 – munyul

+0

あなたは非常に小さな線といくつかの量の遅延を含むforループの部分に線を描くことによって試すことができます。 – Kharak

答えて

4

あなたのコードに基づいて、あなたは、単に動的な座標値を作成する必要があります。

Vector2 startPt = null; 
Vector2 endPt = null; 
Vector2 movingPt = null; 

void myInit() 
{ 
    startPt = new Vector2(10, 10); 
    endPt = new Vector2(100, 100); 
    movingPt = new Vector2(startPt.x, startPt.y); 
} 

void update(float delta) 
{ 
    // add your animation here, below is an example 
    float PixelsPerSecond = 100f; 
    float dt = delta * PixelsPerSecond; 
    if (movingPt.x < endPt.x) movingPt.x += dt; 
    else movingPt.x = endPt.x; 
    if (movingPt.y < endPt.y) movingPt.y += dt; 
    else movingPt.y = endPt.y; 
} 

void draw() 
{ 

    // add code here (or in a base class) to clear the screen (once) each loop 

    ShapeRenderer shapeRenderer=new ShapeRenderer(); 
    shapeRenderer.setProjectionMatrix(cam.combined); 
    shapeRenderer.begin(ShapeRenderer.ShapeType.Line); 
    shapeRenderer.setColor(Color.BLACK); 
    shapeRenderer.line(startPt, movingPt); 
    shapeRenderer.end(); 
} 
+0

私はちょっと答えを変えました。今、それは完璧に働いています、ありがとう!! :) –

+0

ああ、あなたは本当に行の作成をアニメーション化したいと思っています:)喜んでコードが助けました... – munyul

+0

うん。ありがとう:) –

関連する問題