public override bool ProcessKeyboard(KeyboardInfo info)
{
bool keyHit = false;
var newPosition = player.Position;
if (info.KeysPressed.Contains(AsciiKey.Get(Keys.Up)))
{
newPosition.Y -= 1;
keyHit = true;
}
else if (info.KeysPressed.Contains(AsciiKey.Get(Keys.Down)))
{
newPosition.Y += 1;
keyHit = true;
}
if (info.KeysPressed.Contains(AsciiKey.Get(Keys.Left)))
{
newPosition.X -= 1;
keyHit = true;
}
else if (info.KeysPressed.Contains(AsciiKey.Get(Keys.Right)))
{
newPosition.X += 1;
keyHit = true;
}
// Test location
if (map.IsWalkable(newPosition.X, newPosition.Y))
{
player.Position = newPosition;
UpdatePlayerView();
}
return keyHit || base.ProcessKeyboard(info);
}