Hi EpiQuerty,
In your main function, you are drawing the player once and then you start up a loop where you check for player input and then move the position of the player.
The problem is moving the position of the player needs to be followed by another draw() function after you call PlayerInput(). This should be a different than DrawPlayer() since that's just an initial draw.
Drawing needs to happen once per loop iteration (actually a clear screen followed by a draw of the entities at their new positions).
Also I would take your PlayerInput() call out of the inner while loop, and move into the outer loop
int main()
{
init();
GraphicsInit(); //initialization functions. They just load some placeholder textures and stuff like that
window.create(VideoMode(1024, 768), "Game Engine");
window.clear(Color::Black);
window.display();
DrawPlayer();
while (window.isOpen()) //main window loop
{
while (window.pollEvent(event)) //secondary window loop, polls for closing events
{
if (event.type == Event::Closed)
{
window.close();
}
}
PlayerInput();
NewDrawFunction();
}
}
I hope this helps!