moveblockthree.lst
来自「用proteus模拟仿真实现俄罗期方块游戏」· LST 代码 · 共 234 行 · 第 1/2 页
LST
234 行
106 1 switch(ucAction)
107 1 {
108 2 case ACTIONROTATE:
109 2 vCleanBlock(uc_BlockRow,uc_BlockLine-1);
110 2 vShowBlock(uc_BlockRow-1,uc_BlockLine);
111 2 uc_BlockState=STATEFOUR;
112 2 break;
113 2 case ACTIONRIGHT:
114 2 vCleanBlock(uc_BlockRow,uc_BlockLine+1);
115 2 vCleanBlock(uc_BlockRow+1,uc_BlockLine);
116 2 vShowBlock(uc_BlockRow,uc_BlockLine-2);
C51 COMPILER V8.05a MOVEBLOCKTHREE 09/08/2007 12:41:37 PAGE 3
117 2 vShowBlock(uc_BlockRow+1,uc_BlockLine-1);
118 2 uc_BlockLine--;
119 2 break;
120 2 case ACTIONDOWN:
121 2 vCleanBlock(uc_BlockRow,uc_BlockLine);
122 2 vCleanBlock(uc_BlockRow,uc_BlockLine+1);
123 2 vCleanBlock(uc_BlockRow,uc_BlockLine-1);
124 2 vShowBlock(uc_BlockRow+1,uc_BlockLine+1);
125 2 vShowBlock(uc_BlockRow+1,uc_BlockLine-1);
126 2 vShowBlock(uc_BlockRow+2,uc_BlockLine);
127 2 uc_BlockRow++;
128 2 break;
129 2 case ACTIONLEFT:
130 2 vCleanBlock(uc_BlockRow,uc_BlockLine-1);
131 2 vCleanBlock(uc_BlockRow+1,uc_BlockLine);
132 2 vShowBlock(uc_BlockRow,uc_BlockLine+2);
133 2 vShowBlock(uc_BlockRow+1,uc_BlockLine+1);
134 2 uc_BlockLine++;
135 2 break;
136 2 default:break;
137 2 }
138 1 }
139
140
141
142 //*************************************************************************************************
143 //* *
144 //* ***********************************状态4移动******************************** *
145 //* *
146 //*************************************************************************************************
147 void vMoveThreeStateFour(unsigned char ucAction)
148 {
149 1 switch(ucAction)
150 1 {
151 2 case ACTIONROTATE:
152 2 vCleanBlock(uc_BlockRow+1,uc_BlockLine);
153 2 vShowBlock(uc_BlockRow,uc_BlockLine-1);
154 2 uc_BlockState=STATEONE;
155 2 break;
156 2 case ACTIONRIGHT:
157 2 vCleanBlock(uc_BlockRow+1,uc_BlockLine);
158 2 vCleanBlock(uc_BlockRow,uc_BlockLine+1);
159 2 vCleanBlock(uc_BlockRow-1,uc_BlockLine);
160 2 vShowBlock(uc_BlockRow,uc_BlockLine-1);
161 2 vShowBlock(uc_BlockRow-1,uc_BlockLine-1);
162 2 vShowBlock(uc_BlockRow+1,uc_BlockLine-1);
163 2 uc_BlockLine--;
164 2 break;
165 2 case ACTIONDOWN:
166 2 if(uc_BlockRow>0)
167 2 vCleanBlock(uc_BlockRow-1,uc_BlockLine);
168 2 vCleanBlock(uc_BlockRow,uc_BlockLine+1);
169 2 vShowBlock(uc_BlockRow+2,uc_BlockLine);
170 2 vShowBlock(uc_BlockRow+1,uc_BlockLine+1);
171 2 uc_BlockRow++;
172 2 break;
173 2 case ACTIONLEFT:
174 2 vCleanBlock(uc_BlockRow+1,uc_BlockLine);
175 2 vCleanBlock(uc_BlockRow,uc_BlockLine);
176 2 vCleanBlock(uc_BlockRow-1,uc_BlockLine);
177 2 vShowBlock(uc_BlockRow,uc_BlockLine+2);
178 2 vShowBlock(uc_BlockRow-1,uc_BlockLine+1);
C51 COMPILER V8.05a MOVEBLOCKTHREE 09/08/2007 12:41:37 PAGE 4
179 2 vShowBlock(uc_BlockRow+1,uc_BlockLine+1);
180 2 uc_BlockLine++;
181 2 break;
182 2 default:break;
183 2 }
184 1 }
185
186
187
188 //*************************************************************************************************
189 //* *
190 //* ***********************************状态分派函数***************************** *
191 //* *
192 //*************************************************************************************************
193 void vMoveBlockThree(unsigned char ucAction)
194 {
195 1 switch(uc_BlockState)
196 1 {
197 2 case STATEONE:vMoveThreeStateOne(ucAction);break;
198 2 case STATETWO:vMoveThreeStateTwo(ucAction);break;
199 2 case STATETHREE:vMoveThreeStateThree(ucAction);break;
200 2 case STATEFOUR:vMoveThreeStateFour(ucAction);break;
201 2 default:break;
202 2 }
203 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 835 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?