想让一个圆形进行横向移动
#include<easyx.h>
#include<stdio.h>
int main()
{
//调整窗体
initgraph(800,600);
setorigin(400,300);
setaspectratio(1,-1);
//设置背景颜色
setbkcolor(RGB(164,225,202));
cleardevice();
//画一个图形
setfillcolor(WHITE);
solidcircle(-400,0,50);
//使图形动起来
int x,y=0;
for(x=-400;x<=400;x+=25)
{
cleardevice(); //循环体内清空之前绘制的图形
solidcircle(x,y,50);//使用新x,y坐标重新绘制圆形
getchar();
}
getchar();
closegraph();
return 0;
}
编译结果如上图所显示,此时要按回车键才能动,按一次动一次。
若出现按了回车键没有反应的情况(本人就遇到了)解决方案如下:在win11的版本中右键选择个性化——系统——开发者选项——终端——更改选项,如下图
此时就可以动起来了。。
当然将循环体内的getchar()改为Sleep(40)这样就可以自己运动了;
接下来时往返运动
#include<easyx.h>
#include<stdio.h>
int main()
{
//调整窗体
initgraph(800,600);
setorigin(400,300);
setaspectratio(1,-1);
//设置背景颜色
setbkcolor(RGB(164,225,202));
cleardevice();
//画一个图形
setfillcolor(WHITE);
solidcircle(-400,0,50);
//使图形动起来
int x=-400,y=0;
int dx=5; //5为每次运动的像素值
while(1) //while是个死循环,不断绘图往返
{
cleardevice();
solidcircle(x,y,50);
Sleep(40);
x=x+dx;
if(x==-400||x==400) //边界处反方向运动
{
dx=-dx;
}
}
getchar();
closegraph();
return 0;
}