?? moveblockfive.c
字號:
//*************************************************************************************************
//* *
//* ********************************移動方塊5******************************** *
//* *
//*************************************************************************************************
#include "GameGraph.h"
#include "GameProcess.h"
//*************************************************************************************************
//* *
//* *********************************狀態1移動********************************** *
//* *
//*************************************************************************************************
void vBlockFiveStateOne(unsigned char ucAction)
{
switch(ucAction)
{
case ACTIONROTATE:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow,uc_BlockLine+2);
vShowBlock(uc_BlockRow-1,uc_BlockLine+1);
vShowBlock(uc_BlockRow+1,uc_BlockLine);
vShowBlock(uc_BlockRow+1,uc_BlockLine+1);
uc_BlockRow++;
uc_BlockState=STATETWO;
break;
case ACTIONRIGHT:
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow,uc_BlockLine+2);
vShowBlock(uc_BlockRow,uc_BlockLine-1);
vShowBlock(uc_BlockRow-1,uc_BlockLine-1);
uc_BlockLine--;
break;
case ACTIONDOWN:
if(uc_BlockRow!=0)
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow,uc_BlockLine+1);
vCleanBlock(uc_BlockRow,uc_BlockLine+2);
vShowBlock(uc_BlockRow+1,uc_BlockLine);
vShowBlock(uc_BlockRow+1,uc_BlockLine+1);
vShowBlock(uc_BlockRow+1,uc_BlockLine+2);
uc_BlockRow++;
break;
case ACTIONLEFT:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vShowBlock(uc_BlockRow-1,uc_BlockLine+1);
vShowBlock(uc_BlockRow,uc_BlockLine+3);
uc_BlockLine++;
break;
default:break;
}
}
//*************************************************************************************************
//* *
//* *********************************狀態2移動********************************** *
//* *
//*************************************************************************************************
void vBlockFiveStateTwo(unsigned char ucAction)
{
switch(ucAction)
{
case ACTIONROTATE:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow,uc_BlockLine+1);
vCleanBlock(uc_BlockRow-2,uc_BlockLine+1);
vShowBlock(uc_BlockRow,uc_BlockLine+2);
vShowBlock(uc_BlockRow-1,uc_BlockLine+2);
vShowBlock(uc_BlockRow-1,uc_BlockLine);
uc_BlockLine+=2;
uc_BlockState=STATETHREE;
break;
case ACTIONRIGHT:
vCleanBlock(uc_BlockRow,uc_BlockLine+1);
vCleanBlock(uc_BlockRow-1,uc_BlockLine+1);
vCleanBlock(uc_BlockRow-2,uc_BlockLine+1);
vShowBlock(uc_BlockRow-1,uc_BlockLine);
vShowBlock(uc_BlockRow-2,uc_BlockLine);
vShowBlock(uc_BlockRow,uc_BlockLine-1);
uc_BlockLine--;
break;
case ACTIONDOWN:
vCleanBlock(uc_BlockRow-2,uc_BlockLine+1);
vCleanBlock(uc_BlockRow,uc_BlockLine);
vShowBlock(uc_BlockRow+1,uc_BlockLine);
vShowBlock(uc_BlockRow+1,uc_BlockLine+1);
uc_BlockRow++;
break;
case ACTIONLEFT:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine+1);
vCleanBlock(uc_BlockRow-2,uc_BlockLine+1);
vShowBlock(uc_BlockRow,uc_BlockLine+2);
vShowBlock(uc_BlockRow-1,uc_BlockLine+2);
vShowBlock(uc_BlockRow-2,uc_BlockLine+2);
uc_BlockLine++;
break;
default:break;
}
}
//*************************************************************************************************
//* *
//* *********************************狀態3移動********************************** *
//* *
//*************************************************************************************************
void vBlockFiveStateThree(unsigned char ucAction)
{
switch(ucAction)
{
case ACTIONROTATE:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine-2);
vShowBlock(uc_BlockRow-2,uc_BlockLine);
vShowBlock(uc_BlockRow-2,uc_BlockLine-1);
vShowBlock(uc_BlockRow,uc_BlockLine-1);
uc_BlockLine--;
uc_BlockState=STATEFOUR;
break;
case ACTIONRIGHT:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vShowBlock(uc_BlockRow,uc_BlockLine-1);
vShowBlock(uc_BlockRow-1,uc_BlockLine-3);
uc_BlockLine--;
break;
case ACTIONDOWN:
if(uc_BlockRow>0)
{
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine-1);
vCleanBlock(uc_BlockRow-1,uc_BlockLine-2);
}
vShowBlock(uc_BlockRow,uc_BlockLine-1);
vShowBlock(uc_BlockRow,uc_BlockLine-2);
vShowBlock(uc_BlockRow+1,uc_BlockLine);
uc_BlockRow++;
break;
case ACTIONLEFT:
vCleanBlock(uc_BlockRow-1,uc_BlockLine-2);
vCleanBlock(uc_BlockRow,uc_BlockLine);
vShowBlock(uc_BlockRow,uc_BlockLine+1);
vShowBlock(uc_BlockRow-1,uc_BlockLine+1);
uc_BlockLine++;
break;
default:break;
}
}
//*************************************************************************************************
//* *
//* *********************************狀態4移動********************************** *
//* *
//*************************************************************************************************
void vBlockFiveStateFour(unsigned char ucAction)
{
switch(ucAction)
{
case ACTIONROTATE:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-2,uc_BlockLine);
vCleanBlock(uc_BlockRow-2,uc_BlockLine+1);
vShowBlock(uc_BlockRow-1,uc_BlockLine+1);
vShowBlock(uc_BlockRow-1,uc_BlockLine-1);
vShowBlock(uc_BlockRow-2,uc_BlockLine-1);
uc_BlockRow--;
uc_BlockLine--;
uc_BlockState=STATEONE;
break;
case ACTIONRIGHT:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow-2,uc_BlockLine+1);
vShowBlock(uc_BlockRow,uc_BlockLine-1);
vShowBlock(uc_BlockRow-1,uc_BlockLine-1);
vShowBlock(uc_BlockRow-2,uc_BlockLine-1);
uc_BlockLine--;
break;
case ACTIONDOWN:
if(uc_BlockRow>1)
{
vCleanBlock(uc_BlockRow-2,uc_BlockLine);
vCleanBlock(uc_BlockRow-2,uc_BlockLine+1);
}
vShowBlock(uc_BlockRow+1,uc_BlockLine);
if(uc_BlockRow!=0)
vShowBlock(uc_BlockRow-1,uc_BlockLine+1);
uc_BlockRow++;
break;
case ACTIONLEFT:
vCleanBlock(uc_BlockRow,uc_BlockLine);
vCleanBlock(uc_BlockRow-1,uc_BlockLine);
vCleanBlock(uc_BlockRow-2,uc_BlockLine);
vShowBlock(uc_BlockRow,uc_BlockLine+1);
vShowBlock(uc_BlockRow-1,uc_BlockLine+1);
vShowBlock(uc_BlockRow-2,uc_BlockLine+2);
uc_BlockLine++;
break;
default:break;
}
}
//*************************************************************************************************
//* *
//* *********************************狀態分派函數******************************* *
//* *
//*************************************************************************************************
void vMoveBlockFive(unsigned char ucAction)
{
switch(uc_BlockState)
{
case STATEONE:vBlockFiveStateOne(ucAction);break;
case STATETWO:vBlockFiveStateTwo(ucAction);break;
case STATETHREE:vBlockFiveStateThree(ucAction);break;
case STATEFOUR:vBlockFiveStateFour(ucAction);break;
default:break;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -