Пример #1
0
        private void picTexture_MouseClick(object sender, MouseEventArgs e)
        {
            //AddTextureTile();
            if (e.Button == MouseButtons.Right)
            {
                TilePoints.Clear();
                foreach (var tileSelectImage in _tileSelectImages)
                {
                    pnlTexture.Controls.Remove(tileSelectImage);
                }
                _tileSelectImages.Clear();
            }

            if (e.Button == MouseButtons.Left)
            {
                AddTextureTile();
            }
        }
Пример #2
0
        private void AddTextureTile()
        {
            var ptCursor = Cursor.Position;

            ptCursor = picTexture.PointToClient(ptCursor);
            var textureX = (ptCursor.X - pnlTexture.Location.X - 16) / 16;
            var textureY = (ptCursor.Y - pnlTexture.Location.Y - 16) / 16;



            if (TilePoints.Any(t => t.X == textureX && t.Y == textureY))
            {
                return;
            }

            TilePoints.Add(new Vector2(textureX, textureY));
            TilePoints.Sort(delegate(Vector2 x, Vector2 y)
            {
                if (x.X > y.X)
                {
                    return(1);
                }
                if (x.Y == y.Y)
                {
                    return(1);
                }
                return(-1);
            });

            var image = new PictureBox();

            image.Height   = 16;
            image.Width    = 16;
            image.Location = new Point(picTexture.Location.X + (16 + 1) * textureX + 1, picTexture.Location.Y + (16 + 1) * textureY + 1);
            _tileSelectImages.Add(image);
            pnlTexture.Controls.Add(image);
            image.BringToFront();
        }