⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data.inc

📁 俄罗斯方块用汇编语言编写 (1)执行的命令: ---------------------------------- ML /c /coff /Cp main.asm Link /subsy
💻 INC
字号:

;******************************************************************************

IDB_BITMAP1  equ 101   ;位图资源的ID
IDB_BITMAP2  equ 103
IDB_BITMAP3  equ 104
IDB_BITMAP4  equ 105
IDB_BITMAP5  equ 106
IDB_BITMAP6  equ 107
IDB_BITMAP7  equ 108
IDB_BITMAP8  equ 109

;控制物体下落的定时器
ID_TIMER1    equ 1     
INTERVAL     equ 500

;定时器触发时的动作
XDOWN        equ 1
XNEW         equ 2
XREMOVEROW   equ 3
XBREAK       equ 4

;画图有关的尺寸
CellWidth    equ 20    ;每个小方块的长和宽
CellHeight   equ 20
PanelWidth   equ 204
PanelHeight  equ 403
WndWidth     equ 214
WndHeight    equ 452

;状态栏的控件ID
ID_STATUSBAR	equ	1

;******************************************************************************
        .data
;******************************************************************************

HInstance    dd ?      ;程序模块句柄
HMainWnd     dd ?      ;主窗体句柄
HMemWnd      dd ?      ;屏幕上要显示的东西先画到这里面
BlackBrush   dd ?      ;没有小方块的地方用黑色画刷
BlueBrush    dd ?      ;游戏的背景颜色   
HDCX         dd ?      ;保存正在下落的方块位图的设备
HDCO         dd ?      ;保存已经落到底的方块位图的设备
Cell         RECT <>   ;表示小方块矩形
Panel        RECT <>   ;表示整个画板
HStatus      dd ?
;和定时器有关的标志
IsTimer      dd FALSE  ;定时器工作时 = 1, 定时器不工作时 = 0
Act          dd ?      ;定时器触发时的动作

;..................................
;调试
DgBuffer     db  512 dup (?)
DgCaption    db  '调试信息框', 0
;DgMsg        db  '已执行到', 0
;DgMsg        db  '_GetNextDrop: %d', 0
;DgMsg        db  '_GetMapChar:%c', 0
;DgMsg        db  "Test_IndexToCoord: %d, %d, %d, %d", 0 
;DgMsg        db  "Test_WndCreate, HMemWnd = %d", 0
;DgMsg        db  "消息 WM_CHAR 按键已验证", 0
;DgMsg        db  "定时器事件已验证", 0
;DgMsg        db  "Test_NewCooky: %d, %d, %d, %d, %d, %d, %d, %d", 0
;DgMsg        db  "_Xleft 出界", 0
;DgMsg        db  "_Xdown: 行=%d, 列=%d", 0
;DgMsg        db  "_Xturn %d", 0
DgMsg        db  "AAA %d", 0
DgMsg2        db  "BBB %d", 0
;..................................

CookyTop     dd ?             ;正在下落的方块左上角的位置   
CookyLeft    dd ?
CookyNo      dd ?             ;下落的是哪个方块
Pose         dd ?             ;方块是那种姿势
Dots         dd 8 dup (?)     ;下落的方块占用的四个位置
Dots2        dd 8 dup (?)     ;记录方块下一步的位置,用来判断是否可以移动
;Dots         dd 2, 2, 3, 3, 4, 4, 5, 5
;Dots         dd 0, 0, 0, 0, 0, 0, 0, 0
;Dots         dd 19, 9, 19, 9, 19, 9, 19, 9

IsDrawCooky  dd FALSE             ;是否画正在下落的物体
RowFull      db 20 dup ('N'), 0    ;20行里面哪一行是满的
szClassName     db  'yzp-els', 0
szCaptionMain   db  '小方块', 0

;状态栏上显示的东西
StatusBuffer    db  128 dup (?)
StatusMsg       db  "有问题找上帝, 得分:%lu", 0 
Score           dd  ?
GameOver        db  "Game Over !", 13, 10,  13, 10, "最后得分:%lu", 0
TipCaption      dd "^o^", 0

MapTop      db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '  ;-1 消去行的时候所有行往下挪,这样方便吧
Map         db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '  ;0  方块活动区域10 * 20 格
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '  ;1  X表示正在下落的物件,Q表示已经落到底的物件
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '  ;10
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '  ;18
            db  ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '  ;19
MapBottom   db  'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q'  ;20  最后一行不在窗口上画出来,仅仅是方块下落到这里时处理方便

            ;---------------------
Box         db  'X', 'X', ' ', ' '    ;方块1
            db  'X', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '
            
            db  'X', 'X', ' ', ' '
            db  'X', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', 'X', ' ', ' '
            db  'X', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', 'X', ' ', ' '
            db  'X', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '
            ;---------------------
            db  'X', 'X', 'X', 'X'     ;方块2
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', ' ', ' ', ' '
            db  'X', ' ', ' ', ' '
            db  'X', ' ', ' ', ' '
            db  'X', ' ', ' ', ' '

            db  'X', 'X', 'X', 'X'
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', ' ', ' ', ' '
            db  'X', ' ', ' ', ' '
            db  'X', ' ', ' ', ' '
            db  'X', ' ', ' ', ' '
            ;---------------------
            db  'X', 'X', 'X', ' '     ;方块3
            db  ' ', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  ' ', 'X', ' ', ' '
            db  'X', 'X', ' ', ' '
            db  ' ', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  ' ', 'X', ' ', ' '
            db  'X', 'X', 'X', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', ' ', ' ', ' '
            db  'X', 'X', ' ', ' '
            db  'X', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '
            ;---------------------
            db  'X', 'X', ' ', ' '     ;方块4
            db  'X', ' ', ' ', ' '
            db  'X', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', 'X', 'X', ' '
            db  ' ', ' ', 'X', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  ' ', 'X', ' ', ' '
            db  ' ', 'X', ' ', ' '
            db  'X', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', ' ', ' ', ' '
            db  'X', 'X', 'X', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '
            ;---------------------
            db  'X', 'X', ' ', ' '     ;方块5
            db  ' ', 'X', ' ', ' '
            db  ' ', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  ' ', ' ', 'X', ' '
            db  'X', 'X', 'X', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', ' ', ' ', ' '
            db  'X', ' ', ' ', ' '
            db  'X', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', 'X', 'X', ' '
            db  'X', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '
            ;---------------------
            db  ' ', 'X', ' ', ' '     ;方块6
            db  'X', 'X', ' ', ' '
            db  'X', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', 'X', ' ', ' '
            db  ' ', 'X', 'X', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  ' ', 'X', ' ', ' '
            db  'X', 'X', ' ', ' '
            db  'X', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', 'X', ' ', ' '
            db  ' ', 'X', 'X', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '
            ;---------------------
            db  'X', ' ', ' ', ' '     ;方块7
            db  'X', 'X', ' ', ' '
            db  ' ', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  ' ', 'X', 'X', ' '
            db  'X', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  'X', ' ', ' ', ' '
            db  'X', 'X', ' ', ' '
            db  ' ', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '

            db  ' ', 'X', 'X', ' '
            db  'X', 'X', ' ', ' '
            db  ' ', ' ', ' ', ' '
            db  ' ', ' ', ' ', ' '










⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -