示例#1
0
        /// <summary>
        /// Raises the <see cref="E:System.Windows.Forms.ComboBox.MeasureItem"/> event.
        /// </summary>
        /// <param name="e">The <see cref="T:System.Windows.Forms.MeasureItemEventArgs"/> that was raised.</param>
        protected override void OnMeasureItem(MeasureItemEventArgs e)
        {
            if (e.Index < 0)
            {
                return;
            }

            if (this.Items[e.Index].GetType() == typeof(SpecialCell))
            {
                SpecialCell c = (SpecialCell)this.Items[e.Index];
                if (c.CellType == SpecialCell.CellTypes.CurrentColor)
                {
                    e.ItemHeight = 0;
                }
                else if (c.CellType == SpecialCell.CellTypes.Transparent && !m_allowTransparent)
                {
                    e.ItemHeight = 0;
                }
                else
                {
                    base.OnMeasureItem(e);
                }
            }
            else
            {
                base.OnMeasureItem(e);
            }
        }
示例#2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ColorComboBox"/> class.
        /// </summary>
        public ColorComboBox()
            : base()
        {
            if (!this.DesignMode)
            {
                m_currentColor = new SpecialCell(SpecialCell.CellTypes.CurrentColor);
                base.SetCustomRender(new RenderCustomItem(ColorComboRender));

                //ResetColors();
            }
        }
示例#3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ColorComboBox"/> class.
        /// </summary>
        public ColorComboBox()
            : base()
        {
            if (!this.DesignMode)
            {
                m_currentColor = new SpecialCell(SpecialCell.CellTypes.CurrentColor);
                base.SetCustomRender(new RenderCustomItem(ColorComboRender));

                //ResetColors();
            }
        }
示例#4
0
    private SpecialCell CreateSegmentCell(Cell cell, GameObject segment)
    {
        var specialCell = new SpecialCell
        {
            Cell = cell,
            Obj  = segment
        };

        specialCell.Obj.transform.parent   = _player.transform;
        specialCell.Obj.transform.position = specialCell.Cell.WorldPosition;
        return(specialCell);
    }
示例#5
0
    private void DrawSegment(SpecialCell segment, [Optional] Cell previousCell, [Optional] Cell nextCell)
    {
        Sprite segmentSprite = null;

        if (previousCell != null && nextCell != null)
        {
            if (previousCell.Y < segment.Cell.Y && segment.Cell.Y < nextCell.Y ||
                previousCell.Y > segment.Cell.Y && segment.Cell.Y > nextCell.Y)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_12");
            }
            else if (previousCell.X < segment.Cell.X && segment.Cell.X < nextCell.X ||
                     previousCell.X > segment.Cell.X && segment.Cell.X > nextCell.X)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_13");
            }
            else if (previousCell.X < segment.Cell.X && segment.Cell.Y < nextCell.Y ||
                     previousCell.Y > segment.Cell.Y && segment.Cell.X > nextCell.X)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_11");
            }
            else if (previousCell.X > segment.Cell.X && segment.Cell.Y < nextCell.Y ||
                     previousCell.Y > segment.Cell.Y && segment.Cell.X < nextCell.X)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_8");
            }
            else if (previousCell.X > segment.Cell.X && segment.Cell.Y > nextCell.Y ||
                     previousCell.Y < segment.Cell.Y && segment.Cell.X < nextCell.X)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_9");
            }
            else if (previousCell.X < segment.Cell.X && segment.Cell.Y > nextCell.Y ||
                     previousCell.Y < segment.Cell.Y && segment.Cell.X > nextCell.X)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_10");
            }
        }
        else if (previousCell != null)
        {
            if (previousCell.Y < segment.Cell.Y)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_0");
            }
            else if (previousCell.Y > segment.Cell.Y)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_2");
            }
            else if (previousCell.X > segment.Cell.X)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_3");
            }
            else if (previousCell.X < segment.Cell.X)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_1");
            }
        }
        else if (nextCell != null)
        {
            if (nextCell.Y < segment.Cell.Y)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_6");
            }
            else if (nextCell.Y > segment.Cell.Y)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_4");
            }
            else if (nextCell.X > segment.Cell.X)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_5");
            }
            else if (nextCell.X < segment.Cell.X)
            {
                segmentSprite = snakeAtlas.GetSprite("Snake_7");
            }
        }

        segment.Obj.GetComponent <SpriteRenderer>().sprite = segmentSprite;
    }