#include<stdio.h> #include<stdlib.h> #include<windows.h> #include<conio.h> int main(void){ ?? ?int i,j,a,b; ?? ?int x = 0; ? //以左上方为原点,竖直向下为X轴正半轴,水平向右为 y轴正半轴? ?? ?int y = 5; ?? ? ?? ?int velocity_x = 1; //竖直方向 加速度? ?? ?int velocity_y = 1; //水平方向 加速度? ?? ?int left = 0;?? ??? ?//左边界? ?? ?int right = 20;?? ??? ?//右边界? ?? ?int top =0;?? ??? ??? ?//天花板? ?? ?int bottom = 10;?? ?//地板? ?? ? ?? ?while(1){ ?? ??? ?x=x+velocity_x; ?? ??? ?y=y+velocity_y; ?? ??? ? ?? ??? ?system("cls"); //清屏函数来自stdlib,通过清屏实现变帧,实现动画效果? ?? ??? ? ?? ??? ?for(i=0;i<x;i++) printf("\n"); ?? ??? ?for(j=0;j<y;j++) printf(" "); //通过坐标轴定位小球位置,改变X,Y来改变小球位置的打印? ?? ??? ?printf("o"); ?? ??? ?printf("\n"); ?? ??? ?Sleep(50);?? ??? ??? ??? ?//来自windows.h,实现函数语句等待一段时间再运行的效果,让小球运动更具动感。? ?? ??? ? ?? ??? ?if((x==top)||(x==bottom)){ ?? ??? ??? ?velocity_x=-velocity_x; ?? ??? ??? ?printf("\a"); ?? ??? ?} ?? ??? ?if((y==left)||(y==right)){ ?? ??? ??? ?velocity_y=-velocity_y; ?? ??? ??? ?printf("\a");?? ??? ?//碰墙后改变加速度方向,实现碰墙反弹效果? ?? ??? ?}? ?? ??? ? ?? ?} ?? ?return 0; }
——————————特别鸣谢游戏教程的帮助《C语言课程设计与游戏开发实践教程》
心得:另外收获:<conio.h>库的getch()函数具有使后台不需要回车就可以得到输入的控制字符的功能,让界面更洁净;其kbhit()在用户有输入使返回1,没有输入时返回0;
平时需要多了解库的功能,方便实现更多功用。
?
|