嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
输入WASD控制人物移动方向,R重置本关卡。
用函数得到人物在输入方向前的第一个和第二个元素的坐标,隐去了在判断是否可以移动时有关WASD的具体细节。
//ij作为全局变量,指示人物的坐标
int i,j;
//得到人物在输入的移动方向前的第一个和第二个元素的坐标
int getx(char ch,int a){
switch(ch){
case 'w':return i-a;
case 's':return i a;
case 'a':
case 'd':return i;
}
return 0;
}
int gety(char ch,int a){
switch(ch){
case 'w':
case 's':return j;
case 'a':return j-a;
case 'd':return j a;
}
return 0;
}
//得到人物在按键方向前的第一个和第二个元素的坐标
int x1=getx(ch,1),x2=getx(ch,2),y1=gety(ch,1),y2=gety(ch,2);
//用指针指向人物在按键方向前的第一个和第二个元素,以备使用和修改
enum item *this=&map[i][j],*next1=&map[x1][y1],*next2=&map[x2][y2];
//这样在判断是否可以移动、怎样改变地图元素时,隐去了WASD的细节。