public LevelSelectionScreen() { selectedIndex = 0; arrowSrc = new Rectangle(410, 10, 60, 50); postitSrc = new Rectangle(86, 4, 245, 382); postitDst = postitSrc; postitDst.X = 60; postitDst.Y = 140; postitDst.Width += (postitDst.Width / 3); //Enlarge post-it to display more text postitDst.Height += (postitDst.Width / 3); playSrc = new Rectangle(857, 0, 90, 120); playDst = arrowSrc; playDst.X = postitDst.X + (postitDst.Width / 2) + (arrowSrc.Width / 2); playDst.Y = (postitDst.Y + postitDst.Height) - arrowSrc.Height; backSrc = new Rectangle(677, 0, 120, 120); backDst = arrowSrc; backDst.X = postitDst.X; backDst.Y = 650; levelSrc = new Rectangle(0, 0, 32, 32); shipSrc = new Rectangle(0, 260, 70, 55); waySrc = new Rectangle(4, 46, 25, 15); //Place levels levelPositionOnMap = new Dictionary<int, Vector2>(); levelPositionOnMap.Add(0, new Vector2(895, 272)); levelPositionOnMap.Add(1, new Vector2(796, 167)); levelPositionOnMap.Add(2, new Vector2(796, 475)); levelPositionOnMap.Add(3, new Vector2(210, 600)); levelPositionOnMap.Add(4, new Vector2(586, 354)); levelPositionOnMap.Add(5, new Vector2(640, 145)); levelPositionOnMap.Add(6, new Vector2(410, 230)); //list of bezier's points //2 waypoints per road Vector2[] tmp; pointsBezier = new Dictionary<int, List<Vector2>>(); tmp = new Vector2[] { new Vector2(895, 236), new Vector2(942, 210) }; //between 0 - 1 pointsBezier.Add(0, new List<Vector2>(tmp)); tmp = new Vector2[] { new Vector2(850, 256), new Vector2(870, 220) }; //between 1 - 2 pointsBezier.Add(1, new List<Vector2>(tmp)); tmp = new Vector2[] { new Vector2(672, 610), new Vector2(300, 490) }; //between 2 - 3 pointsBezier.Add(2, new List<Vector2>(tmp)); tmp = new Vector2[] { new Vector2(236, 386), new Vector2(616, 461) }; //between 3 - 4 pointsBezier.Add(3, new List<Vector2>(tmp)); tmp = new Vector2[] { new Vector2(675, 250), new Vector2(600, 200) }; pointsBezier.Add(4, new List<Vector2>(tmp)); tmp = new Vector2[] { new Vector2(560, 265), new Vector2(575, 175) }; pointsBezier.Add(5, new List<Vector2>(tmp)); tmp = new Vector2[] { new Vector2(485, 165), new Vector2(460, 250) }; pointsBezier.Add(6, new List<Vector2>(tmp)); //Set direction for GamePad users to move on the map availableShipDirectionByLevel = new List<AvailableShipDirection>(); AvailableShipDirection dir0 = new AvailableShipDirection(0); dir0.Directions.Add(ShipDirection.Up, ShipAction.GoNext); dir0.Directions.Add(ShipDirection.Left, ShipAction.GoNext); dir0.Directions.Add(ShipDirection.Right, ShipAction.GoBack); dir0.Directions.Add(ShipDirection.Down, ShipAction.GoBack); AvailableShipDirection dir1 = new AvailableShipDirection(1); dir1.Directions.Add(ShipDirection.Left, ShipAction.GoNext); dir1.Directions.Add(ShipDirection.Down, ShipAction.GoNext); dir1.Directions.Add(ShipDirection.Right, ShipAction.GoBack); dir1.Directions.Add(ShipDirection.Up, ShipAction.GoBack); AvailableShipDirection dir2 = new AvailableShipDirection(2); dir2.Directions.Add(ShipDirection.Left, ShipAction.GoNext); dir2.Directions.Add(ShipDirection.Down, ShipAction.GoNext); dir2.Directions.Add(ShipDirection.Right, ShipAction.GoBack); dir2.Directions.Add(ShipDirection.Up, ShipAction.GoBack); AvailableShipDirection dir3 = new AvailableShipDirection(3); dir3.Directions.Add(ShipDirection.Left, ShipAction.GoNext); dir3.Directions.Add(ShipDirection.Right, ShipAction.GoBack); dir3.Directions.Add(ShipDirection.Up, ShipAction.GoNext); dir3.Directions.Add(ShipDirection.Down, ShipAction.GoBack); AvailableShipDirection dir4 = new AvailableShipDirection(4); dir4.Directions.Add(ShipDirection.Left, ShipAction.GoBack); dir4.Directions.Add(ShipDirection.Down, ShipAction.GoBack); dir4.Directions.Add(ShipDirection.Right, ShipAction.GoNext); dir4.Directions.Add(ShipDirection.Up, ShipAction.GoNext); AvailableShipDirection dir5 = new AvailableShipDirection(5); dir5.Directions.Add(ShipDirection.Left, ShipAction.GoBack); dir5.Directions.Add(ShipDirection.Down, ShipAction.GoBack); dir5.Directions.Add(ShipDirection.Right, ShipAction.GoNext); dir5.Directions.Add(ShipDirection.Up, ShipAction.GoNext); AvailableShipDirection dir6 = new AvailableShipDirection(6); dir6.Directions.Add(ShipDirection.Left, ShipAction.GoNext); dir6.Directions.Add(ShipDirection.Down, ShipAction.GoNext); dir6.Directions.Add(ShipDirection.Right, ShipAction.GoBack); dir6.Directions.Add(ShipDirection.Up, ShipAction.GoBack); availableShipDirectionByLevel.Add(dir0); availableShipDirectionByLevel.Add(dir1); availableShipDirectionByLevel.Add(dir2); availableShipDirectionByLevel.Add(dir3); availableShipDirectionByLevel.Add(dir4); availableShipDirectionByLevel.Add(dir5); availableShipDirectionByLevel.Add(dir6); shipDst = shipSrc; shipDst.X = (int)levelPositionOnMap[0].X; shipDst.Y = (int)levelPositionOnMap[0].Y; Vector2 controlLoc = new Vector2(105, 350); difficultyListControl = new ListControl("", controlLoc, new List<ListElement>() { new ListElement(Difficulty.Easy, new Rectangle(600, 600, 95, 5),"Easy"), new ListElement(Difficulty.Normal, new Rectangle(600, 600, 95, 5),"Normal"), new ListElement(Difficulty.Hard, new Rectangle(600, 600, 95, 5),"Hard") }, "StartLevel"); difficultyListControl.Focus = true; foreach (ListElement le in difficultyListControl.Elements) { if (TGPAContext.Instance.Options.Difficulty == (Difficulty)le.Value) { difficultyListControl.FocusedElement = le; } } difficultyListControl.ValueChanged += new ValueChangedEventhandler(this.DifficultyValueChanged); rectDst = new Rectangle(150, 250, 774, 275); Initialize(); }
public LevelSelectionScreen() { selectedIndex = 0; arrowSrc = new Rectangle(410, 10, 60, 50); postitSrc = new Rectangle(86, 4, 245, 382); postitDst = postitSrc; postitDst.X = 60; postitDst.Y = 140; postitDst.Width += (postitDst.Width / 3); //Enlarge post-it to display more text postitDst.Height += (postitDst.Width / 3); playSrc = new Rectangle(857, 0, 90, 120); playDst = arrowSrc; playDst.X = postitDst.X + (postitDst.Width / 2) + (arrowSrc.Width / 2); playDst.Y = (postitDst.Y + postitDst.Height) - arrowSrc.Height; backSrc = new Rectangle(677, 0, 120, 120); backDst = arrowSrc; backDst.X = postitDst.X; backDst.Y = 650; levelSrc = new Rectangle(0, 0, 32, 32); shipSrc = new Rectangle(0, 260, 70, 55); waySrc = new Rectangle(4, 46, 25, 15); //Place levels levelPositionOnMap = new Dictionary <int, Vector2>(); levelPositionOnMap.Add(0, new Vector2(895, 272)); levelPositionOnMap.Add(1, new Vector2(796, 167)); levelPositionOnMap.Add(2, new Vector2(796, 475)); levelPositionOnMap.Add(3, new Vector2(210, 600)); levelPositionOnMap.Add(4, new Vector2(586, 354)); levelPositionOnMap.Add(5, new Vector2(640, 145)); levelPositionOnMap.Add(6, new Vector2(410, 230)); //list of bezier's points //2 waypoints per road Vector2[] tmp; pointsBezier = new Dictionary <int, List <Vector2> >(); tmp = new Vector2[] { new Vector2(895, 236), new Vector2(942, 210) }; //between 0 - 1 pointsBezier.Add(0, new List <Vector2>(tmp)); tmp = new Vector2[] { new Vector2(850, 256), new Vector2(870, 220) }; //between 1 - 2 pointsBezier.Add(1, new List <Vector2>(tmp)); tmp = new Vector2[] { new Vector2(672, 610), new Vector2(300, 490) }; //between 2 - 3 pointsBezier.Add(2, new List <Vector2>(tmp)); tmp = new Vector2[] { new Vector2(236, 386), new Vector2(616, 461) }; //between 3 - 4 pointsBezier.Add(3, new List <Vector2>(tmp)); tmp = new Vector2[] { new Vector2(675, 250), new Vector2(600, 200) }; pointsBezier.Add(4, new List <Vector2>(tmp)); tmp = new Vector2[] { new Vector2(560, 265), new Vector2(575, 175) }; pointsBezier.Add(5, new List <Vector2>(tmp)); tmp = new Vector2[] { new Vector2(485, 165), new Vector2(460, 250) }; pointsBezier.Add(6, new List <Vector2>(tmp)); //Set direction for GamePad users to move on the map availableShipDirectionByLevel = new List <AvailableShipDirection>(); AvailableShipDirection dir0 = new AvailableShipDirection(0); dir0.Directions.Add(ShipDirection.Up, ShipAction.GoNext); dir0.Directions.Add(ShipDirection.Left, ShipAction.GoNext); dir0.Directions.Add(ShipDirection.Right, ShipAction.GoBack); dir0.Directions.Add(ShipDirection.Down, ShipAction.GoBack); AvailableShipDirection dir1 = new AvailableShipDirection(1); dir1.Directions.Add(ShipDirection.Left, ShipAction.GoNext); dir1.Directions.Add(ShipDirection.Down, ShipAction.GoNext); dir1.Directions.Add(ShipDirection.Right, ShipAction.GoBack); dir1.Directions.Add(ShipDirection.Up, ShipAction.GoBack); AvailableShipDirection dir2 = new AvailableShipDirection(2); dir2.Directions.Add(ShipDirection.Left, ShipAction.GoNext); dir2.Directions.Add(ShipDirection.Down, ShipAction.GoNext); dir2.Directions.Add(ShipDirection.Right, ShipAction.GoBack); dir2.Directions.Add(ShipDirection.Up, ShipAction.GoBack); AvailableShipDirection dir3 = new AvailableShipDirection(3); dir3.Directions.Add(ShipDirection.Left, ShipAction.GoNext); dir3.Directions.Add(ShipDirection.Right, ShipAction.GoBack); dir3.Directions.Add(ShipDirection.Up, ShipAction.GoNext); dir3.Directions.Add(ShipDirection.Down, ShipAction.GoBack); AvailableShipDirection dir4 = new AvailableShipDirection(4); dir4.Directions.Add(ShipDirection.Left, ShipAction.GoBack); dir4.Directions.Add(ShipDirection.Down, ShipAction.GoBack); dir4.Directions.Add(ShipDirection.Right, ShipAction.GoNext); dir4.Directions.Add(ShipDirection.Up, ShipAction.GoNext); AvailableShipDirection dir5 = new AvailableShipDirection(5); dir5.Directions.Add(ShipDirection.Left, ShipAction.GoBack); dir5.Directions.Add(ShipDirection.Down, ShipAction.GoBack); dir5.Directions.Add(ShipDirection.Right, ShipAction.GoNext); dir5.Directions.Add(ShipDirection.Up, ShipAction.GoNext); AvailableShipDirection dir6 = new AvailableShipDirection(6); dir6.Directions.Add(ShipDirection.Left, ShipAction.GoNext); dir6.Directions.Add(ShipDirection.Down, ShipAction.GoNext); dir6.Directions.Add(ShipDirection.Right, ShipAction.GoBack); dir6.Directions.Add(ShipDirection.Up, ShipAction.GoBack); availableShipDirectionByLevel.Add(dir0); availableShipDirectionByLevel.Add(dir1); availableShipDirectionByLevel.Add(dir2); availableShipDirectionByLevel.Add(dir3); availableShipDirectionByLevel.Add(dir4); availableShipDirectionByLevel.Add(dir5); availableShipDirectionByLevel.Add(dir6); shipDst = shipSrc; shipDst.X = (int)levelPositionOnMap[0].X; shipDst.Y = (int)levelPositionOnMap[0].Y; Vector2 controlLoc = new Vector2(105, 350); difficultyListControl = new ListControl("", controlLoc, new List <ListElement>() { new ListElement(Difficulty.Easy, new Rectangle(600, 600, 95, 5), "Easy"), new ListElement(Difficulty.Normal, new Rectangle(600, 600, 95, 5), "Normal"), new ListElement(Difficulty.Hard, new Rectangle(600, 600, 95, 5), "Hard") }, "StartLevel"); difficultyListControl.Focus = true; foreach (ListElement le in difficultyListControl.Elements) { if (TGPAContext.Instance.Options.Difficulty == (Difficulty)le.Value) { difficultyListControl.FocusedElement = le; } } difficultyListControl.ValueChanged += new ValueChangedEventhandler(this.DifficultyValueChanged); rectDst = new Rectangle(150, 250, 774, 275); Initialize(); }