Respondere independientemente si te constestaron en tu problema.
Sinceramente todo lo que es graficos siempre se hace en 1 solo Thread es asi porque piensa que manejar 1 solo dispositivo con 2 Threads, 2 personas tratando de usar una sola cosa es algo imposible (se puede pero se turnan)
Bueno descartando usar Threads(solo usa el principal) tienes que pensar de otra manera, bueno como yo programo videojuegos lo pienso asi:
- Debes hacer que tu programa corra a una cierta velocidad, (puedes hacer un while que la ultima sentencia duerma algunos milisegundos)
- Hacer que tu sprite (linea animada) se anime =P
Como hacer que tu linea se anime, se me ocurre obiar el repintado y hacer que un punto recorra una trayectoria.
Ejemplo esta formula
P(t) = Po + V(t)*t +A(t)*t*t/2
Esta formula hace que un punto se mueva desde Po en un instante t=0 a un punto P(tf) en un instante tf (Rayos Fisica)
jajaja
depende si haces V(t)= Vo constante y A(t) = NULO (matemático) haces una recta animada, si haces que A constante haces que la linea acelere o si haces la función V(t) = (cos(t),sen(t)) puedes hacer un circulo animado.
Me fui muy matematico parece pero es la unica solución MAS SENCILLA (tengo otra) y general
te dejare algo de PSEUDO CODIGO
main
tiempo = 0
v = constante
while (hasta que stop sea true)
x = v * tiempo
y = v * tiempo
//Nota 1
pintarPunto(x,y)
//Nota 2
añadir una unidad a tiempo
dormir 16 miliseg // Esto es mas o menos 60 FPS
while end
end main
En la nota 1 puedes borrar lo anterior o en la nota 2 aplicas tecnica del doble buffer osbiamente esto produce un punto moviendose para lo que tu quieres ignora siemplemente.
Saludos espero que te sirva te algo