马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <graphics.h>
#include <conio.h>
void paintCircle(int x, int y);
const int R = 0; //圆的半径
int main(){
initgraph(640, 480); //初始化图形环境
int x = 320, y = 240; //圆心的初始坐标
int xSize = 1, ySize = 1; //圆每次移动的方向和距离
while (1)
{
BeginBatchDraw();
cleardevice();
if ( y+100>=450) ySize =-ySize;
y += ySize;
if(y<=240)ySize=0;
y += ySize;
paintCircle(x, y); //绘制
FlushBatchDraw();
}
_getch();
closegraph(); //关闭图形环境
return 0;
}
void paintCircle(int x,int y){
cleardevice(); //清屏
rectangle(x,y,x+100,y+100); //绘制
Sleep(10);
}
我想让这个图形到最下面的时候停一段时间(y+100=450时图形停止一段时间),然后再往上运动,应该怎么加延时函数
你可以在y+100>=450时为ySize赋值为0,并添加一个延时函数(例如Sleep)来达到停止一段时间的目的。然后,在延时结束后,再将ySize设置为负值,使图形向上运动。这里是修改后的代码:
#include <graphics.h>
#include <conio.h>
void paintCircle(int x, int y);
const int R = 0; //圆的半径
int main(){
initgraph(640, 480); //初始化图形环境
int x = 320, y = 240; //圆心的初始坐标
int xSize = 1, ySize = 1; //圆每次移动的方向和距离
bool pause = false;
while (1)
{
BeginBatchDraw();
cleardevice();
if ( y+100>=450 && !pause) {
ySize = 0;
pause = true;
Sleep(1000); // 停止1000毫秒(1秒)
ySize = -1;
}
if (y <= 240) {
pause = false;
ySize = 1;
}
y += ySize;
paintCircle(x, y); //绘制
FlushBatchDraw();
}
_getch();
closegraph(); //关闭图形环境
return 0;
}
void paintCircle(int x,int y){
cleardevice(); //清屏
rectangle(x,y,x+100,y+100); //绘制
Sleep(10);
}
这个修改后的代码将使图形在y+100=450时停止1秒,然后再往上运动。
|