玩无限消乐的设计示例(基础篇)DataGridView控件动态添加、设置、试载图片

本文介绍了一款名为无限消乐的消除类游戏设计过程。通过动态生成DataGridView控件而非使用拖放控件来实现游戏的基本功能,包括允许拖放操作、显示动画效果以及提示可消除的位置等功能。

玩无限消乐的设计示例(动态生成控件,非拖放控件)

从今天开始将陆续发布尚在设计和提升中的源代码,分为基础篇、高级篇、智能篇。

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");
                行数++;
            }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值