📄 moveblock.lst
字号:
C51 COMPILER V8.05a MOVEBLOCK 11/13/2007 09:15:28 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE MOVEBLOCK
OBJECT MODULE PLACED IN .\Target\MoveBlock.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\MoveBlock.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\LST
-\MoveBlock.lst) OBJECT(.\Target\MoveBlock.obj)
line level source
1 //*************************************************************************************************
2 //* *
3 //* ******************************方块移动函数******************************* *
4 //* *
5 //*************************************************************************************************
6 #include "includes.h"
7
8
9 //*************************************************************************************************
10 //* *
11 //* **********************************创建一个方块****************************** *
12 //* *
13 //*************************************************************************************************
14 void vCreateBlock() //在当前位置创建一个方块。
15 {
16 1 unsigned char ucRowOffset,ucLineOffset;
17 1 for(ucRowOffset=0;ucRowOffset<4;ucRowOffset++)
18 1 for(ucLineOffset=0;ucLineOffset<4;ucLineOffset++)
19 1 {
20 2 if((0x01&(unsigned char)((psta_BlockCur->uiBlockMap)>>(ucRowOffset*4+ucLineOffset)))
21 2 &&(uc_BlockRow+ucRowOffset)>=ROW(0))
22 2 vShowBlock(uc_BlockRow+ucRowOffset-ROW(0),uc_BlockLine+ucLineOffset-LINE(0));
23 2 }
24 1 }
25
26 //*************************************************************************************************
27 //* *
28 //* **********************************删除一个方块****************************** *
29 //* *
30 //*************************************************************************************************
31 void vDeleteBlock() //在当前位置删除一个方块。
32 {
33 1 unsigned char ucRowOffset,ucLineOffset;
34 1 for(ucRowOffset=0;ucRowOffset<4;ucRowOffset++)
35 1 for(ucLineOffset=0;ucLineOffset<4;ucLineOffset++)
36 1 {
37 2 if((0x01&(unsigned char)((psta_BlockCur->uiBlockMap)>>(ucRowOffset*4+ucLineOffset)))
38 2 &&(uc_BlockRow+ucRowOffset)>=ROW(0))
39 2 vCleanBlock(uc_BlockRow+ucRowOffset-ROW(0),uc_BlockLine+ucLineOffset-LINE(0));
40 2 }
41 1 }
42
43
44 //*************************************************************************************************
45 //* *
46 //* **********************************产生一个新的方块**************************** *
47 //* *
48 //*************************************************************************************************
49 void vNewBlock()
50 {
51 1 unsigned char ucBlockSelect; //用于选择方块类型及状态的数,通过取
52 1 ucBlockSelect=(TH0+TH1)%18; //定时器的值产生随机数。
53 1 psta_BlockNext=&sta_BlockSet[ucBlockSelect];
54 1 }
C51 COMPILER V8.05a MOVEBLOCK 11/13/2007 09:15:28 PAGE 2
55
56 //*************************************************************************************************
57 //* *
58 //* *********************************移动方块******************************* *
59 //* *
60 //*************************************************************************************************
61 void vMoveBlock(unsigned char ucAction)
62 {
63 1 vDeleteBlock();
64 1 switch(ucAction)
65 1 {
66 2 case ACTIONLEFT:uc_BlockLine++;break;
67 2 case ACTIONRIGHT:uc_BlockLine--;break;
68 2 case ACTIONDOWN:uc_BlockRow++;break;
69 2 case ACTIONROTATE:psta_BlockCur=&sta_BlockSet[psta_BlockCur->ucNextState];break;
70 2 default:break;
71 2 }
72 1 vCreateBlock();
73 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 289 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 5
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -