A ver:
float posxf=0;
posxf+=0.2;
putpixel(BITMAP *bmp, posf, int y, int color);
No hace nada.
posxf+=0.2;
putpixel(BITMAP *bmp, posf, int y, int color);
No hace nada.
posxf+=0.2;
putpixel(BITMAP *bmp, posf, int y, int color);
No hace nada.
posxf+=0.2;
putpixel(BITMAP *bmp, posf, int y, int color);
No hace nada.
posxf+=0.2;
putpixel(BITMAP *bmp, posf, int y, int color);
Avanza un píxel (posf ahora con el cast vale 1, antes 0).
Así es como lo tienes que hacer, vas sumando la posición al float y luego se lo pasas a la función que lo dibuje como entero, los decimales se desprecian pero cada x frames avanza un píxel. De ese modo no te tienes que preocupar por qué valores das a la velocidad, ya se moverá cuando se tenga que mover.
Al pasarle el float a la función, que acepta enteros, hará automáticamente un cast, asi que no te tienes que preocupar. Si quieres evitar el warning haz el cast a mano al pasar el argumento ( (int)posxf );
float posxf=0;
posxf+=0.2;
putpixel(BITMAP *bmp, posf, int y, int color);
No hace nada.
posxf+=0.2;
putpixel(BITMAP *bmp, posf, int y, int color);
No hace nada.
posxf+=0.2;
putpixel(BITMAP *bmp, posf, int y, int color);
No hace nada.
posxf+=0.2;
putpixel(BITMAP *bmp, posf, int y, int color);
No hace nada.
posxf+=0.2;
putpixel(BITMAP *bmp, posf, int y, int color);
Avanza un píxel (posf ahora con el cast vale 1, antes 0).
Así es como lo tienes que hacer, vas sumando la posición al float y luego se lo pasas a la función que lo dibuje como entero, los decimales se desprecian pero cada x frames avanza un píxel. De ese modo no te tienes que preocupar por qué valores das a la velocidad, ya se moverá cuando se tenga que mover.
Al pasarle el float a la función, que acepta enteros, hará automáticamente un cast, asi que no te tienes que preocupar. Si quieres evitar el warning haz el cast a mano al pasar el argumento ( (int)posxf );