这是该计划。
void main( )
{
int h, v;
h = 1; v = 10;
while ( !kbhit( ) || h <= 80 )
{
gotoxy( h, v );
printf( "<--->" );
delay( 200 );
clrscr( );
h = h + 1;
}
getch( );
}
我在C中创建一个程序,我在其中使用kbhit()
来运行循环,直到按下某个键。
所以这里箭头"<--->"
将一直向前移动,直到按下一个键或直到它到达屏幕的最后一个像素。
我想要的是每次按'd'
时程序应该将h递增1,并且每按一次'a'
递减1。即h++;
和h--;
并运行另一个循环,直到按下一个字符。
这个想法更像是蛇游戏,其中蛇继续向某个方向移动,直到按下一个键。求救!
答案 0 :(得分:1)
clrscr()应该出现在gotoxy和printf
之前无论如何,我要做的是创建一个状态变量,只是为了指示蛇应该去的方向,即存储用户按下“a”或“d”的东西。
我不会离开循环,只需使用if(kbhit)并获取char。
int direction = 1; char control;
while (1)
{
if(kbhit()){
control = getch();
switch (control){
case 'a': direction = -1; break;
case 'd': direction = +1; break;
default: break;
}
}
clrscr( );
gotoxy( h, v );
printf( "<--->" );
delay( 200 );
h = h + direction;
}