vb.net游戏开发:窗体鼠标松开事件与百变方块游戏逻辑

需积分: 18 3 下载量 40 浏览量 更新于2024-08-17 收藏 1.31MB PPT 举报
"窗体鼠标松开事件-vb.net开发游戏第11-15章" 在VB.NET开发的游戏项目中,窗体的鼠标松开事件(Form1_MouseUp)是一个关键的交互点,它在用户释放鼠标按钮时触发。这个事件主要用于处理用户与游戏界面的交互,特别是在一个6x6格子的棋盘游戏中,用户会拖动不同形状的拼块来填充空白格子。在描述的代码段中,我们可以看到以下几个重要的知识点: 1. 窗体事件处理:`Form1_MouseUp` 是一个窗体级别的事件,它在鼠标按钮被释放时执行。在这个事件处理程序中,开发者可以执行特定的操作,例如在这里是对用户移动的拼块进行位置校正和游戏状态的检查。 2. 变量Drag_PictBox:这个布尔变量用于追踪当前是否有拼块正在被拖动。在鼠标松开时,将其设置为`False`表示拖动操作结束。 3. 拼块位置校正:`m_chipList(m_nCurrIndex).Verity(CHIP_WIDTH)` 这一行代码表明,当鼠标松开时,会调用当前选中拼块的方法(Verity)进行位置校正,确保拼块位于正确的方格内。`m_nCurrIndex` 是当前选中拼块的索引,`CHIP_WIDTH` 可能是定义的每个方格的宽度。 4. 重绘所有拼块:`Draw_AllChip()` 函数被调用来重新绘制棋盘上的所有拼块,以反映最新的布局。这可能是通过清除画布并重新绘制每个拼块来实现的。 5. 游戏胜利判断:`Win()` 函数用于检查游戏是否成功。如果游戏完成,即棋盘上的所有空白格子被填满,那么函数返回`True`,然后弹出消息框显示“成功完成此关”。 6. 游戏逻辑:游戏的目标是使用8种不同形状的拼块填充6x6的棋盘,每种形状的拼块都有特定的顶点数和坐标。游戏提供旋转和翻转功能,以增加游戏的挑战性和多样性。 7. 地图信息存储:游戏的地图信息存储在文本文件`map.txt`中,每一行代表一关的布局。0表示固定的绿色填充方格,1表示需要填充的空白格子。游戏启动时,会读取该文件,将数据存储到二维数组`OrgMap`和`Map`中,分别表示目标图案和当前玩家的布局。 8. 拼块类(CChip.vb):每个拼块由一个自定义类`CChip`表示,包含类型代号(m_nType)、顶点数量(m_nPointCount)以及顶点坐标列表(m_pointList)。`myPath`可能用于存储拼块边界的路径信息,帮助绘制和操作拼块。 9. 游戏状态比较:通过比较`OrgMap`和`Map`两个数组,可以判断玩家是否成功完成了当前关卡,从而更新游戏状态。 这个VB.NET游戏项目展示了如何结合基本的图形用户界面事件处理、文件读写和自定义对象来创建一个具有挑战性的益智游戏。通过窗体事件和自定义类,开发者能够实现用户与游戏的互动,并实现游戏规则的逻辑。