public partial class Page : UserControl
{
TerrainManager _terrainMgr;
double _mapOffsetX = 0;
double _mapOffsetY = 0;
int _scrollSpeed = 20;
public Page()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(Page_Loaded);
this.KeyDown += new KeyEventHandler(Page_KeyDown);
}
void Page_KeyDown(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.NumPad8: //North
case Key.W:
case Key.Up:
_mapOffsetY += _scrollSpeed;
break;
case Key.NumPad2: // South
case Key.X:
case Key.Down:
_mapOffsetY -= _scrollSpeed;
break;
case Key.NumPad6: // East
case Key.D:
case Key.Right:
_mapOffsetX -= _scrollSpeed;
break;
case Key.NumPad4: // West
case Key.A:
case Key.Left:
_mapOffsetX += _scrollSpeed;
break;
case Key.NumPad7: // NW
case Key.Q:
_mapOffsetX += _scrollSpeed;
_mapOffsetY += _scrollSpeed;
break;
case Key.NumPad9: // NE
case Key.E:
_mapOffsetX -= _scrollSpeed;
_mapOffsetY += _scrollSpeed;
break;
case Key.NumPad3: // SE
case Key.C:
_mapOffsetX -= _scrollSpeed;
_mapOffsetY -= _scrollSpeed;
break;
case Key.NumPad1: // SW
case Key.Z:
_mapOffsetX += _scrollSpeed;
_mapOffsetY -= _scrollSpeed;
break;
}
MapContent.SetValue(Canvas.LeftProperty, _mapOffsetX);
MapContent.SetValue(Canvas.TopProperty, _mapOffsetY);
}
void Page_Loaded(object sender, RoutedEventArgs e)
{
_terrainMgr = new TerrainManager(Map);
_terrainMgr.CreateGroundLayer(10, 10);
}
}