I'm sure there are a hundred ways to solve this, but here's what I've done in the past:
Map out all the key presses you want to support: assign them an integer called KeyPress or whatever. So left is 1, up-left is 2, up is 3 and so on, all the way around the compass points. Include 0 for no key presses. Be sure to explicitly define the key presses including what keys should not be pressed. So if up is pressed, then down should not be pressed, and so on. Then create your motion and animations based on the KeyPress integer: If 1, then set the left animation and simulate movement left, etc.