📄 movedecide.lst
字号:
C51 COMPILER V8.05a MOVEDECIDE 11/06/2007 16:45:43 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE MOVEDECIDE
OBJECT MODULE PLACED IN .\Target\MoveDecide.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\MoveDecide.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\LS
-T\MoveDecide.lst) OBJECT(.\Target\MoveDecide.obj)
line level source
1 //*************************************************************************************************
2 //* *
3 //* ******************************方块移动判定函数************************** *
4 //* *
5 //*************************************************************************************************
6 #include "includes.h"
7
8 unsigned char ucMoveDecide(unsigned char ucAction)
9 {
10 1 unsigned char ucRow=uc_BlockRow,ucLine=uc_BlockLine; //把当前方块位置暂存。
11 1 unsigned char ucRowOffset,ucLineOffset; //方块位置偏移量。
12 1 unsigned int uiDecideMap; //方块判断位图。
13 1
14 1 if(ucAction==ACTIONROTATE)
15 1 uiDecideMap=psta_BlockCur->uiRotateDecide;
16 1 else
17 1 {
18 2 uiDecideMap=psta_BlockCur->uiBlockMap;
19 2 switch(ucAction)
20 2 {
21 3 case ACTIONLEFT:
22 3 uiDecideMap=(~(0x7777&(uiDecideMap>>1)))&uiDecideMap;
23 3 ucLine++;break;
24 3 case ACTIONRIGHT:
25 3 uiDecideMap=(~(0xEEEE&(uiDecideMap<<1)))&uiDecideMap;
26 3 ucLine--;break;
27 3 case ACTIONDOWN:
28 3 uiDecideMap=(~(uiDecideMap>>4))&uiDecideMap;
29 3 ucRow++;break;
30 3 default:break;
31 3 }
32 2 }
33 1 for(ucRowOffset=0;ucRowOffset<4;ucRowOffset++)
34 1 for(ucLineOffset=0;ucLineOffset<4;ucLineOffset++)
35 1 {
36 2 if(0x01&(unsigned char)(uiDecideMap>>(ucRowOffset*4+ucLineOffset)))
37 2 {
38 3 if((ucLine+ucLineOffset)<LINE(0)||(ucLine+ucLineOffset)>LINE(11)
39 3 ||(ucRow+ucRowOffset)>ROW(20))
40 3 return 0;
41 3 if(ucReadBlock(ucRow+ucRowOffset-ROW(0),ucLine+ucLineOffset-LINE(0)))
42 3 return 0;
43 3 }
44 2 }
45 1 return 1;
46 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 270 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
C51 COMPILER V8.05a MOVEDECIDE 11/06/2007 16:45:43 PAGE 2
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 + -