2017-02-15 96 views
2

我在做libGdx的第一個遊戲。我必須做的線畫動畫像this video在libGDX中畫線動畫

這裏是我的代碼的DrawLine

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(); 

我能夠得出兩點間的直線,但需要與繪圖動畫。

有幫助嗎?基於您的代碼

+1

你有超過7K信譽分數,並要求不向我們展示你已經試過這是什麼問題? – munyul

+0

好的,謝謝你的小代碼示例 - 爲線條設置動畫,只需使4個座標值動態變化即可。 – munyul

+0

你可以嘗試繪製線條爲包含非常小的線條和一些延遲量的循環片段。 – 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

是的。謝謝 :) –