DeenGames.Utils.Tower.Controls.TowerText.AttachTo C# (CSharp) Метод

AttachTo() публичный Метод

public AttachTo ( TowerSprite sprite, bool changeRelative ) : void
sprite DeenGames.Valence.Tower.Controls.TowerSprite
changeRelative bool
Результат void
        public void AttachTo(TowerSprite sprite, bool changeRelative)
        {
            this.BaseText.AttachTo(sprite.InternalSprite, changeRelative);
        }

Usage Example

Пример #1
0
        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();
        }