📄 moveblockone.c
字号:
//*************************************************************************************************
//* *
//* ********************************移动方块1******************************** *
//* *
//*************************************************************************************************
#include "GameGraph.h"
#include "GameProcess.h"
#include "BlockCreate.h"
//*************************************************************************************************
//* *
//* ********************************方块1状态1移动***************************** *
//* *
//*************************************************************************************************
void vMoveStateOne(unsigned char ucAction)
{
switch(ucAction)
{
//<<<<<<<<<<<<<<<<<<<<<<<<<旋转处理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
case ACTIONROTATE:
uc_BlockState=STATETWO;
switch(uc_BlockLine)
{
case 0:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow-3,uc_BlockLine);
uc_BlockRow-=2;
vBlockCreate();
break;
case 10:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow-3,uc_BlockLine);
uc_BlockRow-=2;
uc_BlockLine-=2;
vBlockCreate();
break;
case 11:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow-3,uc_BlockLine);
uc_BlockRow-=2;
uc_BlockLine-=3;
vBlockCreate();
break;
default:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow-3,uc_BlockLine);
uc_BlockRow-=2;
uc_BlockLine--;
vBlockCreate();
}
break;
//<<<<<<<<<<<<<<<<<<<<<<<<<右移处理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
case ACTIONRIGHT:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow-2,uc_BlockLine);
vCleanBlock(uc_BlockRow-3,uc_BlockLine);
uc_BlockLine--;
vBlockCreate();
break;
//<<<<<<<<<<<<<<<<<<<<<<<<<左移处理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
case ACTIONLEFT:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow-2,uc_BlockLine);
vCleanBlock(uc_BlockRow-3,uc_BlockLine);
uc_BlockLine++;
vBlockCreate();
break;
//<<<<<<<<<<<<<<<<<<<<<<<<<下降处理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
case ACTIONDOWN:
if(uc_BlockRow<3)
{
uc_BlockRow++;
vBlockCreate();
}
else
{
vCleanBlock(uc_BlockRow-3,uc_BlockLine);
uc_BlockRow++;
vShowBlock(uc_BlockRow,uc_BlockLine);
}
break;
//<<<<<<<<<<<<<<<<<<<<<<<<<默认处理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
default:break;
}
}
//*************************************************************************************************
//* *
//* ********************************方块1状态2移动***************************** *
//* *
//*************************************************************************************************
void vMoveStateTwo(unsigned char ucAction)
{
switch(ucAction)
{
case ACTIONROTATE:
uc_BlockState=STATEONE;
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow,uc_BlockLine+2);
vCleanBlock(uc_BlockRow,uc_BlockLine+3);
uc_BlockRow+=2;
uc_BlockLine++;
vBlockCreate();
break;
case ACTIONRIGHT:
vCleanBlock(uc_BlockRow,uc_BlockLine+3);
vShowBlock(uc_BlockRow,uc_BlockLine-1);
uc_BlockLine--;
break;
case ACTIONDOWN:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow,uc_BlockLine+1);
vCleanBlock(uc_BlockRow,uc_BlockLine+2);
vCleanBlock(uc_BlockRow,uc_BlockLine+3);
uc_BlockRow++;
vBlockCreate();
break;
case ACTIONLEFT:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vShowBlock(uc_BlockRow,uc_BlockLine+4);
uc_BlockLine++;
break;
default:break;
}
}
//*************************************************************************************************
//* *
//* ********************************状态分派函数******************************** *
//* *
//*************************************************************************************************
void vMoveBlockOne(unsigned char ucAction)
{
switch(uc_BlockState)
{
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<状态1处理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
case STATEONE:vMoveStateOne(ucAction);break;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<状态2处理>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
case STATETWO:vMoveStateTwo(ucAction);break;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
default:break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -