大苏打dd 发表于 2023-3-21 18:43:25

求助关于easyx库使用中遇到的问题

#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时图形停止一段时间),然后再往上运动,应该怎么加延时函数

isdkz 发表于 2023-3-21 18:49:58

你可以在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秒,然后再往上运动。

大苏打dd 发表于 2023-3-21 18:56:42

isdkz 发表于 2023-3-21 18:49
你可以在y+100>=450时为ySize赋值为0,并添加一个延时函数(例如Sleep)来达到停止一段时间的目的。然后, ...

哇,谢谢,这个思路确实好

movetoporket_2 发表于 2024-3-2 18:20:45

一般是加sleep吧,当然也可能有更好的方法。
页: [1]
查看完整版本: 求助关于easyx库使用中遇到的问题