如何使其看起来像落雪?

时间:2019-11-13 06:25:41

标签: c++

我试图使它看起来像是下雪,但是雪无处不在,因此我必须从库graphics.h中使下雪。我不知道如何移动它,但是我已经添加了x和y。对于int speed,我不知道要使用它,我从其他代码(从球的移动)中看到了。这段代码是我的任务,你们可以帮我吗?

#include <graphics.h>

class Snow
{
    private:
        int x,y;
        int color;
        int speed;

    public:
        Snow(int _x, int _y, int _color, int _speed)
        {
            x=_x;
            y=_y;
            color=_color;
            speed=_speed;
        }
        int getColor()
        {
            return color;
        }
        int getSpeed()
        {
            return speed;
        }
        int getX()
        {
            return x;
        }
        int getY()
        {
            return y;
        }
        void setX(int value)
        {
            //x=rand();
            x=value;
        }
        void setY (int value)
        {
            //y=rand();
            y=value;
        }
        void setColor(int value)
        {
            color=value;
        }
        void setSpeed(int value)
        {
            speed=value;
        }

        void draw()
        {
            setcolor(color);
            setfillstyle(SOLID_FILL,color);
            fillellipse(x,y,2,2);
        }
        void undraw()
        {
            setcolor(BLACK);
            fillellipse(x,y,2,2);
        }
        void move()
        {
            undraw();
            x=rand() % getmaxwidth();
            y=rand() % getmaxheight();
            draw();


        }
};

int main()
{
    int screenWidth = getmaxwidth();
    int screenHeight = getmaxheight();
    initwindow(screenWidth, screenHeight, "Snowy day");

    Snow p1(0,0,WHITE,10);

    while (!kbhit())
    {
        delay(100);
        p1.move();

    }

    return 0;
}

1 个答案:

答案 0 :(得分:0)

您应该在移动功能中使用速度。例如:

void move() {
    undraw();
    x=rand() % getmaxwidth();
    // fall
    y += speed;
    draw();
}