|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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秒,然后再往上运动。
|
|