作者:一代天骄的小男人_580 | 来源:互联网 | 2023-09-17 11:38
本文旨在用最简洁的方法来实现俄罗斯方块的功能settimer。至于程序的美工设计,或者一些细节当中的bug,不再本文讨论范围内,主要是大家演示一个完整的程序构架
本文旨在用最简洁的方法来实现俄罗斯方块的功能settimer。至于程序的美工设计,或者一些细节当中的bug,不再本文讨论范围内,主要是大家演示一个完整的程序构架及设计过程。如果能给大家一些思路的拓宽或者程序构造搭建的一些理念。
第一;程序架构
我们来编写俄罗斯方块这个程序settimer,那我们就先来个庖丁解牛,将俄罗斯反怪分解为我们需要解决的各个
1、构建方块settimer,
2、初始化
3、随机生成方块
4、方块进入操作界面
5、判断方块所处环境
6、移动操控的方块
7、变形按键处理
8、消除处理
9、时间处理
10、其余杂项处理
以上就是我们将俄罗斯方块分解后的几个模块,这样,整个程序的架构就基本完成了settimer。
第二:程序设计
也就是程序的主要部分了settimer,我们可以先新建一个模块,
0、公共变量罗列(建议琢磨时间30秒)
我们先把我这个程序涉及到的变量罗列一下,不用刻意去看啥意思settimer。后面我们在每个模块当中都会提到
Public Declare Function SetTimer Lib "user32.dll" (ByVal hWnd As Long, ByVal nIDEvent As Long, _
ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32.dll" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long
''以上两个函数可能有人没见过settimer。是用来设定每隔多少时间执行一个过程的函数。不晓得的话照抄还不会吗?settimer就是设定间隔并生效执行,killtimer就是去除这个设定。
Public CurrentBlock, NextBlock, TempBlock ''CurrentBlock 当前方块 NextBlock 下一个方块 TempBlock 临时方块
Public CurrentColor, NextColor ''当前方块颜色settimer,下一个方块颜色
Public InterTime ''间隔时间,就是方块自然下降的速度settimer。他由游戏的难度决定。
Public CStop ''是否停止settimer,停止游戏
Public Cross ''关卡
Public Diff(8) ''难度
这段话放在模块的声明中就行了settimer。
详细及附件下载: