📄 game.cpp
字号:
#include"game.h"
CGame::CGame()
{
level=1;
oldlevel=1;
scort=0;
oldscort=0;
gameCount=-30;
gamePauseCount=0;
isRed=false;
backColor=15;
charColor=10;//绿
ClearBuffer(33,10,6,3,backColor);
ClearBuffer(2,1,20,20,backColor);
DrawText( 25, 15, charColor,"按1:重新开始");
DrawText( 25, 17, charColor,"Enter: 暂停");
DrawText( 25, 19, charColor,"Esc:退出游戏");
itoa(scort,scortStr,10);
DrawText( 33, 12, charColor,scortStr);
itoa(level,levelStr,10);
DrawText( 33, 10, charColor,levelStr);
fangkuai=new CFK;
}
CGame::~CGame()
{
delete fangkuai;
}
GameState CGame::Logic(bool goOn)
{
fflush( stdin );
if(_kbhit())
{
int a=_getch();
char input[2];
if(a<0)
{
input[0] = a;
input[1] = _getch();
}
else
{
input[1] = a;
}
switch (input[1])
{
case KEY_UP:
case 'w':
case 'W':
if(goOn)
{
fangkuai->change();
}
break;
case KEY_DOWN:
case 's':
case 'S':
if(goOn)
{
scort+=fangkuai->moveDown();
if(scort<oldscort)
{
return OVER;
}
if(oldscort!=scort)
{
itoa(scort,scortStr,10);
DrawText( 33, 12, charColor,scortStr);
oldscort=scort;
level=scort/1000+1;
if(oldlevel!=level)
{
itoa(level,levelStr,10);
DrawText( 33, 10, charColor,levelStr);
oldlevel=level;
}
}
}
break;
case KEY_LEFT:
case 'A':
case 'a':
if(goOn)
{
fangkuai->moveLeft();
}
break;
case KEY_RIGHT:
case 'd':
case 'D':
if(goOn)
{
fangkuai->moveRight();
}
break;
case KEY_ENTER:
if(goOn)
{
return PAUSE;
}
DrawText( 25, 17, charColor,"Enter: 暂停");
return GAME;
break;
case KEY_ESC:
return EXIT;
break;
case '1':
level=1;
oldlevel=1;
scort=0;
oldscort=0;
gameCount=-30;
itoa(scort,scortStr,10);
ClearBuffer(33,10,6,3,backColor);
DrawText( 33, 12, charColor,scortStr);
itoa(level,levelStr,10);
DrawText( 33, 10, charColor,levelStr);
ClearBuffer(2,1,20,20,backColor);
fangkuai->next();
return GAME;
break;
case ' ':
if(goOn)
{
scort+=fangkuai->moveButton();
if(scort<oldscort)
{
return OVER;
}
if(oldscort!=scort)
{
itoa(scort,scortStr,10);
DrawText( 33, 12, charColor,scortStr);
oldscort=scort;
level=scort/1000+1;
if(oldlevel!=level)
{
itoa(level,levelStr,10);
DrawText( 33, 10, charColor,levelStr);
oldlevel=level;
}
}
}
break;
}
}
if(goOn)
{
++gameCount;
if(gameCount==1000)
{
gameCount=0;
}
if(gameCount>=0&&gameCount%(15-level)==0)
{
scort+=fangkuai->moveDown();
if(scort<oldscort)
{
return OVER;
}
if(oldscort!=scort)
{
itoa(scort,scortStr,10);
DrawText( 33, 12, charColor,scortStr);
oldscort=scort;
level=scort/1000+1;
if(oldlevel!=level)
{
itoa(level,levelStr,10);
DrawText( 33, 10, charColor,levelStr);
oldlevel=level;
}
}
}
return GAME;
}else
{
gamePauseCount++;
if(gamePauseCount==1000)
{
gamePauseCount=0;
}
if(gamePauseCount%3==0)
{
if(isRed)
{
DrawText( 25, 17, 12,"Enter: 继续");
}else
{
DrawText( 25, 17, 10,"Enter: 继续");
}
isRed=!isRed;
}
}
return PAUSE;
}
//IntToWstr
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -