public AttachTo ( |
||
sprite | ||
changeRelative | bool | |
return | void |
public override void Initialize() { this.FadeOutImmediately(); this.AddSprite("Content/Menus/menu-screen.jpg"); Sprite title = this.AddSprite("Content/Menus/select-level.png"); const int VERTICAL_OFFSET = 160; const int HORIZONTAL_OFFSET_FROM_SCREEN = 30; const int VERTICAL_PADDING_BETWEEN_ROWS = 10; int SQUARE_WIDTH = 0; int SQUARE_HEIGHT = 0; // Start Y of levels, plus our height, plus 8-16 padding title.Y = VERTICAL_OFFSET + title.Texture.Height + 16; int currentLevel = CoreModel.Instance.MaxLevelReached; // 12 normal levels for (int i = 1; i <= CoreModel.NUMBER_OF_LEVELS; i++) { TowerSprite square; if (i <= currentLevel) { square = new TowerSprite(this, "Content/Menus/normal-level.png"); } else { square = new TowerSprite(this, "Content/Menus/inactive-level.png"); } SQUARE_WIDTH = square.Width; SQUARE_HEIGHT = square.Height; square.X = -300 + HORIZONTAL_OFFSET_FROM_SCREEN + (((i - 1) % 3) * square.Width); square.Y = VERTICAL_OFFSET - (((i - 1) / 3) * (VERTICAL_PADDING_BETWEEN_ROWS + square.Height) ); square.Click += new TowerSprite.ClickedDelegate(levelSquare_Click); TowerText t = new TowerText(this.AddText(i.ToString())); t.X = square.X; if (i <= currentLevel) { t.Colour(0, 0, 0); t.Y = square.Y + 3; } else { t.Colour(255, 255, 255); t.Y = square.Y - 10; } t.Z = square.Z + 1; t.AttachTo(square, true); } currentLevel -= CoreModel.NUMBER_OF_LEVELS; // 12 puzzle levels for (int i = 1; i <= CoreModel.NUMBER_OF_LEVELS; i++) { TowerSprite square; if (i <= currentLevel) { square = new TowerSprite(this, "Content/Menus/puzzle-level.png"); } else { square = new TowerSprite(this, "Content/Menus/inactive-level.png"); } square.X = (square.Width / 2) + (((i - 1) % 3) * square.Width); square.Y = VERTICAL_OFFSET - (((i - 1) / 3) * (VERTICAL_PADDING_BETWEEN_ROWS + square.Height)); square.Click += new TowerSprite.ClickedDelegate(levelSquare_Click); TowerText t = new TowerText(this.AddText(string.Format("P{0}", i))); t.X = square.X; if (i <= currentLevel) { t.Colour(0, 0, 0); t.Y = square.Y + 3; } else { t.Colour(255, 255, 255); t.Y = square.Y - 10; } t.Z = square.Z + 1; t.AttachTo(square, true); } Tower3SliceButton backButton = new Tower3SliceButton(this, "Back", "bubble", 18, -5); backButton.X = 340;//;HORIZONTAL_OFFSET_FROM_SCREEN + (1.25f * SQUARE_WIDTH); backButton.Y = -275; //;VERTICAL_OFFSET - (4 * SQUARE_HEIGHT) - (6 * VERTICAL_PADDING_BETWEEN_ROWS); backButton.Click += new TowerBaseButton.ClickedDelegate(backButton_Click); if (CoreModel.Instance.MaxLevelReached >= CoreModel.AVALANCHE_LEVEL) { TowerSprite avalanche = new TowerSprite(this, "Content/Menus/avalanche-level.png"); avalanche.X = -325 + HORIZONTAL_OFFSET_FROM_SCREEN + (0.5f * SQUARE_WIDTH); avalanche.Y = VERTICAL_OFFSET - (4 * SQUARE_HEIGHT) - (6 * VERTICAL_PADDING_BETWEEN_ROWS); avalanche.Click += new TowerSprite.ClickedDelegate(avalanche_Click); TowerText avalancheText = new TowerText(this.AddText("Avalanche")); avalancheText.X = avalanche.X; avalancheText.Y = avalanche.Y + 5; avalancheText.Z = avalanche.Z + 1; avalancheText.Colour(0, 0, 0); avalancheText.AttachTo(avalanche, true); TowerSprite trickle = new TowerSprite(this, "Content/Menus/trickle-level.png"); trickle.X = avalanche.X + SQUARE_WIDTH + 50; trickle.Y = avalanche.Y; trickle.Click += new TowerSprite.ClickedDelegate(trickle_Click); TowerText trickleText = new TowerText(this.AddText("Trickle")); trickleText.X = trickle.X; trickleText.Y = trickle.Y + 9; trickleText.Z = trickle.Z + 1; trickleText.AttachTo(trickle, true); } base.Initialize(); this.FadeIn(); }