玩无限消乐的设计示例(基础篇)改进拖放动画元素操作
来源:互联网 发布:七月算法机器学习视频 编辑:程序博客网 时间:2024/05/16 17:09
配合消除动画元素操作的完成,改进拖放动画操作。
private void 玩无限消乐_DragDrop(object sender, DragEventArgs e) { Point 平面二维 = 玩无限消乐.PointToClient(new Point(e.X, e.Y)); int 拖到行 = 玩无限消乐.HitTest(平面二维.X, 平面二维.Y).RowIndex, 拖到列 = 玩无限消乐.HitTest(平面二维.X, 平面二维.Y).ColumnIndex; DataGridViewCell 拖到单元 = 玩无限消乐.Rows[拖到行].Cells[拖到列]; DataGridViewCell 选定单元 = 玩无限消乐.Rows[选定坐标[1]].Cells[选定坐标[2]]; /*限制条件是有特殊标记的不被交换,交换元素可以选中盘的任何位置元素,而不做只能相邻才能交换的限制,这一点与其他消除规则有些不同,之下注释掉的语句就是一种限制条件。*/ //if (Math.Abs(选定坐标[1] - 玩无限消除.HitTest(平面二维.X, 平面二维.Y).RowIndex) <= 1) if (Math.Abs(选定坐标[2] - 玩无限消除.HitTest(平面二维.X, 平面二维.Y).ColumnIndex) <= 1) if ((int)拖到单元.Tag != 0 && (int)选定单元.Tag != 0) { 选定单元.Value = 拖到单元.Value; 选定单元.Tag = 拖到单元.Tag; 拖到单元.Value = 选定坐标[0] == 0 ? new Bitmap("动画素材/e136.gif") : new Bitmap("动画素材/e" + 选定坐标[0].ToString() + ".gif"); 拖到单元.Tag = 选定坐标[0]; bool 消除行 = (消除动画(拖到行, 拖到列, (int)拖到单元.Tag)), 消除列 = (消除动画(拖到行, 拖到列, (int)拖到单元.Tag, true)), 复原 = true; if (消除行 || 消除列)/*目标处动画消除。*/ { 拖到单元.Value = new Bitmap("动画素材/e136.gif"); 拖到单元.Tag = 0; 复原 = false; 填充检测(选定坐标[4], 选定坐标[5]); } 消除行 = (消除动画(选定坐标[1], 选定坐标[2], (int)选定单元.Tag)); 消除列 = (消除动画(选定坐标[1], 选定坐标[2], (int)选定单元.Tag, true)); if (消除行 || 消除列)/*拖动处动画消除。*/ { 选定单元.Value = new Bitmap("动画素材/e136.gif"); 选定单元.Tag = 0; 复原 = false; 填充检测(选定坐标[4], 选定坐标[5]); } if (复原)/*如果拖动的动画元素没被消除则恢复原先位置。*/ { 拖到单元.Value = 选定单元.Value; 拖到单元.Tag = 选定单元.Tag; 选定单元.Value = 选定坐标[0] == 0 ? new Bitmap("动画素材/e136.gif") : new Bitmap("动画素材/e" + 选定坐标[0].ToString() + ".gif"); 选定单元.Tag = 选定坐标[0]; 检查可消(); } } }
至此,这个游戏的基础部分就设计完成了,也就是说可以玩了。
0 0
- 玩无限消乐的设计示例(基础篇)改进拖放动画元素操作
- 玩无限消乐的设计示例(基础篇)消除动画元素操作
- 玩无限消乐的设计示例(基础篇)填充动画元素操作
- 玩无限消乐的设计示例(基础篇)让动画元素动起来
- 玩无限消乐的设计示例(基础篇)交换元素操作
- 玩无限消乐的设计示例(基础篇)DataGridView控件添加拖放事件方法和委托
- 玩无限消乐的设计示例(基础篇)随机布局
- 玩无限消乐的设计示例(高级篇)积分与特效的计算合用函数与操作
- 玩无限消乐的设计示例(基础篇)DataGridView控件动态添加、设置、试载图片
- 玩无限消乐的设计示例(高级篇)积分与特效的数值保存
- 玩无限消乐的设计示例(高级篇)积分与特效的数值加载
- 玩无限消乐的设计示例(高级篇)积分值加算法
- 玩无限消乐的设计示例(高级篇)直线特效算法
- 玩无限消乐的设计示例(高级篇)炸弹特效算法
- 玩无限消乐的设计示例(高级篇)灭绝特效算法
- 玩无限消乐的设计示例(智能篇)智能配对算法
- 玩无限消乐的设计示例(智能篇)优先搜寻算法
- 玩无限消乐的设计示例(结束篇)增加情趣之音乐
- 关于Fragment使用中遇到的一系列的问题
- 【集合详解】Java集合总结(上)-Collection家族
- :把集合转成数组,可以实现集合的遍历
- app引导页(背景图片切换加各个页面动画效果)
- 逆序建链表
- 玩无限消乐的设计示例(基础篇)改进拖放动画元素操作
- Android 用MediaCodec实现视频硬解码
- 使用左连接查询指定字段值最高的记录
- Boost之Intrusive
- java i/o流-----对象流
- JAVA中的基本数据类型
- HDU-3689 Let the light guide us 线段树+DP
- 集合存储5个学生对象,并把学生对象进行遍历。
- 软件设计之——“高内聚低耦合”