First problem caused by improper usage of glOrtho.
The glOrtho function multiplies the current matrix by an orthographic matrix.
First time projection matrix is multipled for ortho projection.
Next renderings also multiplies previous matrix again and will cause issue.
This issue can be solved by calling glOrtho() once.
Or call glLoadIdendity() before calling glOrtho.
glClearColor(1, 1, 1, 1);
glClearDepth(0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
glOrtho(-10, 10, -10, 10, -1, 1);
glPushMatrix();
glTranslatef(Posx, Posy, 1);
glCallList(Character);
glPopMatrix();