Change the raven's `hunt` method to hunt the mouse pointer instead of the nearest sparrow. Something like: private void Hunt() { offSet += mouse.Position - position; } This will have the raven hunting the mouse pointer, and therefore following the mouse instead of a sparrow. Wa-la, player controller raven. Setting the ravens position directly to that of the mouse pointer will work, but you'll get a raven that can move across the screen very, very fast. Keyboard control is a bit more complicated if you want more natural looking flight. A simpler way to do keyboard control would be to use the keyboard to position a target for the raven to fly towards, similar to the mouse control. But that's not very intuitive for the player. So instead I would do as [JHocking suggests][1], use the arrow keys to increment the offset value: if (left arrow) { offset.x = -1; } else if (right arrow) { offset.x = 1; } else { offset.x = 0; } if (up arrow) { offset.y = 1; } else if (down arrow) { offset.y = -1; } else { offset.y = 0; } That will probably give you some ugly flight, but it will give you a start. You should probably implement some [better steering][2] for your raven. [1]: https://gamedev.stackexchange.com/questions/44471/how-do-i-modify-a-boids-algorithm-to-be-player-controlled/44492#comment72396_44492 [2]: http://www.red3d.com/cwr/steer/gdc99/