|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 zlh 于 2016-2-14 19:43 编辑
教程开始之前先和大家说一声抱歉,因为前两天晚上都和同学出去玩,忘记发教程了。
今天我们要说的是飞机的移动。
相信大家在写一些小游戏的时候都会遇到如何让单位移动的问题。@黑龍
这个问题确实也困扰过我,不过我也找到了解决方法。
就是使用gotoxy()来控制。gotoxy()只要改变一下其中的一个变量就可以实现移动。
例如gotoxy(x,y)是飞机的当前位置。x--就是向左走,x++就是向右走.y--就是向前走,y++就是向后走。
至于子弹的移动,可以用gotoxy()+for循环。
具体代码是这样的。
- void kongzhi(int bx,int by)
- {
- int a;
- a=getch();
- switch(a)
- {
- case Left:if(x != 1)
- {
- x++;
- gotoxy(x,y);
- printf(" ");
- x--;
- x--;
- gotoxy(x,y);
- printf("♂");
- }break;
- case Right:if(x != 18)
- {
- x++;
- gotoxy(x,y);
- printf(" ");
- x--;
- x++;
- gotoxy(x,y);
- printf("♂");
- }break;
- case Kong:
- {
- bx=y;
- for(by=y;by>1;) //发射子弹
- {
- by--;
- gotoxy(x,by);
- printf("θ");
- Sleep(20);
- gotoxy(x,by);
- printf(" ");
- y=by;
- jifan();
- if(r==0||r1==0||r2==0) break;
- }
- y=bx;
- }break;
- case Esc:t=0; break; //退出
- default:break;
- }
- }
复制代码
这里我们还加入了按Esc退出的功能。
接下来我们讲一下敌机的移动.
敌机的移动和我机的移动大概相同,只要用一个循环一直让他前进就可以了。
这里顺便回答一下为什么让我机不用前进,因为敌方靠过来和我方前进是差不多的。
具体代码:
- void dfeiji ()
- {
- while(1)
- {
- gotoxy(d,r);
- printf("Ψ");
- gotoxy(d2,r2);
- printf("♀");
- Sleep(900);
- gotoxy(d,r);
- printf(" ");
- gotoxy(d1,r1);
- printf(" ");
- gotoxy(d2,r2);
- printf(" ");
- if(kbhit())
- {
- kongzhi(0,0);
- }
- if(!r){d=rand()%17+1; m++;}
- if(!r1) {d1=rand()%17+1; m++;}
- if(!r2) {d2=rand()%17+1; m++;}
- r++;
- r1++;
- r2++;
- byebye();
- if(r==18) r=0;
- if(r1==18) r1=0;
- if(r2==18) r2=0;
- if(r==0||r1==0||r2==0) break;
- }
- }
复制代码
那么今天的教程就到这里,最后还是要和大家说一声抱歉。那么明天就是我们程序的最后一步,判定游戏结束和分数等数据的统计。 |
-
|