c语言到底如何从键盘上接受指令并让屏幕上的东西移动呢? 比如说
发布网友
发布时间:2023-05-17 03:54
我来回答
共2个回答
热心网友
时间:2023-10-03 19:30
啊,大家都是同道中人,同病相怜啊
比如一个推箱子游戏,这是我写的啊,看一下部分代码你就知道了
direction=getch();
if(direction=='a')
{
else if((qipan[x][y-1]!='#')&&(qipan[x][y-2]!='#'))
{
if(qipan[x][y-1]=='@')
qipan[x][y-2]=qipan[x][y-1];
qipan[x][y-1]=qipan[x][y];
qipan[x][y]=' ';
y-=1;
}
}
这一段代码就是显示当你按下a时,就会向上走一格
direction=getch();
这一句呢要包含在 #include<conio.h>的头文件里,就是从键盘上获得一个键位值什么的,如果是用上下左右控制,就得是
getch();
direction=getch();
这是为神马?具体你查一下conio.h的头文件就知道了
然后移动就用数组实现就可以,当然,你移动后可能会出现两张地图的情况,就要用到windows.h 头文件里的
system("cls");
这个函数,意思是刷屏,然后就自己弄吧………………
我也是刚开始学C,不足之处还请指教
热心网友
时间:2023-10-03 19:31
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main()
{
int x=0,y=0,i;
char cmd; // 接受输入
putchar('.'); // 一个小点
while(1)
{
cmd=getch(); // 不带回显的接受输入
if(cmd=='q') break; // 输入wasd,输入q退出
switch(cmd){
case 'w': (x>0?--x:x);break;
case 's': x++;break;
case 'a': (y>0 ? --y:y);break;
case 'd': ++y;break;
default:break;
}
system("cls"); // 清屏
for(i=0;i<x;i++) printf("\n");
for(i=0;i<y;i++) printf(" ");
putchar('.'); // 输出
}
}追问果然能行 那么想要让他自己能够向某一个方向移动直到接收到了改变方向的键盘指令 该怎么样实现呢 另外 高手能加一下你的qq吗