玩无限消乐的设计示例(动态生成控件,非拖放控件)
从今天开始将陆续发布尚在设计和提升中的源代码,分为基础篇、高级篇、智能篇。
1.拖放操作;2.显示动画;3.提示可消位置,所以用线程处理。
消除类的游戏基本是用鼠标拖放进行操作,又有动画显示,这是我第一印象了,之前对游戏设计基本无兴趣,因此,游戏类的书籍根本就没看过,只是凭着自己的思路进行设计,也没参考游戏设计的资料,同时这份设计也只是要动动手,也想推测别人是如何实现游戏功能的,也玩玩自己设计的游戏,不受别人游戏限制。
首先动态添加DataGridView控件,我用已有winForm窗体,如果用我的代码进行学习的话,可新建一个空白窗体。
添加代码:
private void Form1_Load(object sender, EventArgs e)
{
DataGridView 玩无限消乐 = new DataGridView();
玩无限消乐.Parent = this;
玩无限消乐.Location = new Point(0, 27);
}
DataGridView控件设置
private void Form1_Load(object sender, EventArgs e)
{
DataGridView 玩无限消乐 = new DataGridView();
玩无限消乐.Parent = this;
玩无限消乐.AllowDrop = true;
玩无限消乐.AllowUserToAddRows = false;
玩无限消乐.AllowUserToOrderColumns = false;
玩无限消乐.AllowUserToResizeColumns = false;
玩无限消乐.AllowUserToResizeRows = false;
玩无限消乐.ReadOnly = true;
玩无限消乐.Anchor = (AnchorStyles.Top | AnchorStyles.Left);
//玩无限消乐.Location = new Point(0, 27);
玩无限消乐.BackgroundColor = System.Drawing.Color.Linen;
玩无限消乐.ColumnHeadersVisible = false;
玩无限消乐.MultiSelect = false;
玩无限消乐.RowHeadersVisible = false;
玩无限消乐.ScrollBars = ScrollBars.None;
玩无限消乐.Capture = true;
玩无限消乐.AutoSize = true;
}
试载图片,调整布局,由于用QQ表情动画,在电脑中搜索到QQ表情动画文件夹,拷贝到工程目录中,文件夹改名为“动画素材”,行列大小依据窗体显示大小,调整到觉得合适程度:
private void Form1_Load(object sender, EventArgs e)
{
DataGridView 玩无限消乐 = new DataGridView();
玩无限消乐.Parent = this;
玩无限消乐.AllowDrop = true;
玩无限消乐.AllowUserToAddRows = false;
玩无限消乐.AllowUserToOrderColumns = false;
玩无限消乐.AllowUserToResizeColumns = false;
玩无限消乐.AllowUserToResizeRows = false;
玩无限消乐.ReadOnly = true;
玩无限消乐.Anchor = (AnchorStyles.Top | AnchorStyles.Left);
//玩无限消乐.Location = new Point(0, 27);
玩无限消乐.BackgroundColor = System.Drawing.Color.Linen;
玩无限消乐.ColumnHeadersVisible = false;
玩无限消乐.MultiSelect = false;
玩无限消乐.RowHeadersVisible = false;
玩无限消乐.ScrollBars = ScrollBars.None;
玩无限消乐.Capture = true;
玩无限消乐.AutoSize = true;
//玩无限消乐.ColumnCount = 14;
int 列数 = 0, 行数 = 0, 数量 = 19;
while (列数++ < 数量)
{
DataGridViewImageColumn 新图列 = new DataGridViewImageColumn();
玩无限消乐.Columns.Add(新图列);
}
玩无限消乐.RowCount = 数量 - 2;
玩无限消乐.AutoResizeColumns();
while (行数 < 数量 - 2)
{
列数 = 0;
while (列数 < 数量)
玩无限消乐.Rows[行数].Cells[列数++].Value = new Bitmap("动画素材/e" + (100 + 行数).ToString() + ".gif");
行数++;
}
}