2017-02-15 112 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

是的。谢谢 :) –