在libGDX中绘制线条动画

San*_*ela 2 android libgdx

我在libGdx做第一场比赛.我必须像这个视频一样做线条画动画

这是我绘制的代码

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();
Run Code Online (Sandbox Code Playgroud)

我能够画2点之间的直线,但需要绘制动画.

任何帮助?

mun*_*yul 5

根据您的代码,您只需要使坐标值动态化:

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();
}
Run Code Online (Sandbox Code Playgroud)