Example #1
0
        public LevelSelectForm(ASCIILevelTable levelTable)
        {
            InitializeComponent();

            mLevels = levelTable;
            UpdateSelectedLevelLabel();

            int thumbSize   = 3;
            int rows        = 4;
            int columns     = (int)Math.Ceiling((float)mLevels.Count / 4.0f);
            int spacing     = 2;
            int edgeSpacing = 6;

            Size size = GetLargestSize();

            for (int yi = 0; yi < columns; yi++)
            {
                for (int xi = 0; xi < rows; xi++)
                {
                    int index = yi * rows + xi + 1;
                    if (index >= mLevels.Count)
                    {
                        break;
                    }

                    Point location = new Point(edgeSpacing + (xi * size.Width * thumbSize) + (xi * spacing), edgeSpacing + (yi * size.Height * thumbSize) + (yi * spacing));
                    Panel pnl      = new Panel();
                    pnl.Location              = location;
                    pnl.Size                  = new Size(size.Width * thumbSize, size.Height * thumbSize);
                    pnl.BackgroundImage       = mLevels[index].GetThumbnail(thumbSize);
                    pnl.BackgroundImageLayout = ImageLayout.Center;
                    pnl.Tag        = index;
                    pnl.MouseDown += new MouseEventHandler(pnl_MouseDown);

                    string name = mLevels[index].Name.Replace('|', ' ');
                    mainToolTip.SetToolTip(pnl, name);

                    if (index == mSelectedLevel)
                    {
                        pnl.BorderStyle = BorderStyle.Fixed3D;
                    }

                    pnlLevels.Controls.Add(pnl);
                }
            }

            ClientSize = new Size(20 + (size.Width * thumbSize * rows) + (spacing * rows) + (2 * edgeSpacing), Size.Height);

            //ClientSize = new Size((size.Width * thumbSize * rows) + (spacing * rows) + (2 * edgeSpacing),
            //	(size.Height * thumbSize * columns) + (spacing * columns) + (spacing * edgeSpacing));
        }
Example #2
0
        public MainForm()
        {
            InitializeComponent();

            for (int i = 0; i < (int)Difficulty.Count; i++)
            {
                ToolStripMenuItem item = new ToolStripMenuItem();
                item.Text   = ((Difficulty)i).ToString();
                item.Click += new EventHandler(difficultyToolStripMenuItem_Click);
                difficultyToolStripMenuItem.DropDownItems.Add(item);
            }
            ((ToolStripMenuItem)difficultyToolStripMenuItem.DropDownItems[1]).Checked = true;

            //List<string> files = new List<string>(Directory.GetFiles("levels", "level*.txt"));
            //int fc = files.Count + 1;
            //for (int i = 1; i < fc; i++) {
            //    int index = files.IndexOf(String.Format("levels\\level{0:00}.txt", i));
            //    if (index >= 0) {
            //        mHighestLevel++;
            //        files.RemoveAt(index);
            //    } else {
            //        break;
            //    }
            //}

            mLevels       = new ASCIILevelTable("data\\levels\\levels.txt");
            mHighestLevel = mLevels.Count;

            snakeGame1.Images.Add("null", Image.FromFile("data\\media\\null.png"));
            snakeGame1.Images.Add("wall", Image.FromFile("data\\media\\wall.png"));
            snakeGame1.Images.Add("food", Image.FromFile("data\\media\\food.png"));
            snakeGame1.LoadASCIITable("data\\levels\\ascii.txt");

            LoadIntroLevel();
            //newToolStripMenuItem_Click(this, EventArgs.Empty);
        }