?? 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 + -