2017-02-15 8 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(); 

я могу нарисовать прямую линию между 2 точками, но необходимо иметь с нанесением анимации.

любая помощь?

+1

У вас есть более 7К счет репутации и задать вопрос, не показывая нам, что вы пробовали? – 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

Да. благодаря :) –

 Смежные вопросы

  • Нет связанных вопросов^_^