我在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点之间的直线,但需要绘制动画.
任何帮助?
根据您的代码,您只需要使坐标值动态化:
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)
| 归档时间: |
|
| 查看次数: |
355 次 |
| 最近记录: |