Я пытаюсь плавно переместить курсор в случайные точки - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь создать программу, которая случайным образом перемещает курсор в разных точках, но я не хочу, чтобы она просто телепортировалась, поэтому мне нужно, чтобы она телепортировалась в постепенные точки к месту назначения. Я подумал, что мог бы просто сделать координаты x и y 1, а затем ++, так что это выглядит очень гладко. Будет ли это работать?

пс. извините, если я выгляжу nooby, это потому, что я только что изучил c ++ 2 недели назад. :)

 class CursFluidity {
    public:

    void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), ++y);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), ++X);
}
}

1 Ответ

1 голос
/ 30 сентября 2019

Вам понадобится переменная, чтобы отслеживать время (или количество звонков, или что-то). Давайте назовем это t. Вам также понадобится исходная и конечная позиции при выполнении нескольких вызовов. Скажем:

class CursFluidity {
public:

    void gotoxy(int x0, int y0, int x1, int y1, float t);

Допустим, вы будете часто это называть, с t, идущим от 0,0 до 1,0. Тогда

float x = x1 * t + x0 * (1.0 - t);
float y = y1 * t + y0 * (1.0 - t);

даст вам точку где-то между (x0, y0) и (x1, y1) с (x0, y0), когда t = 0.0, и (x1, y1), когда t = 1.0.

Я позволю вам собрать их вместе и при необходимости вернусь с конкретным вопросом.

...