Управление скоростью с помощью троичного C / Unix - PullRequest
0 голосов
/ 03 мая 2020

Мне дали рабочий код и попросили его улучшить. Я включил коды, с которыми я работаю

Я выделил скорость шарика для секции с троичным оператором, так как я могу изменить ее с 1 ? -1 : 1 на более быструю 2 ? -2 : 2.

мой вопрос, как насчет замедления? Я попытался изменить переменные структуры для самого шара (который управляется троичным оператором) на плавающую точку, а затем вместо этого использовать дробные числа в троичном, но это привело к тому, что шар вообще не будет двигаться.

Есть ли способ использовать значения от 0 до 0,99 на троице, о котором кто-то может рассказать мне. Альтернативой является использование usleep () ... какие-либо предложения по поводу троичного?

Может кто-нибудь сказать мне, как манипулировать троичным, чтобы я мог замедлить скорость мяча, чтобы нормальные люди могли играть в игру.

struct Ball {
    int px, py, dx, dy;
};

Я пытался изменить здесь dx и dy на float, и это не работает.

int main(void) {
    // initialization
    int hits = 0, misses = 0, best = 0, streak = 0, quit = 0, frame = 1, max_y,
        max_x;
    struct Ball ball;
    struct Paddle paddle;
    system("clear");
    initscr();
    curs_set(0);
    cbreak();
    noecho();
    nodelay(stdscr, 1);
    start_color();
    init_pair(1, COLOR_CYAN, COLOR_BLACK);
    init_pair(2, COLOR_YELLOW, COLOR_BLACK);
    init_pair(3, COLOR_GREEN, COLOR_BLACK);
    getmaxyx(stdscr, max_y, max_x);
    ball.py = max_y / 20;   //controlling where it starts on y
    ball.px = max_x / 30;   //controlling where starts on x


    ball.dy = rand() & 1 ? -1 : 1;      //these two lines control speed
    ball.dx = rand() & 1 ? -1 : 1;


    paddle.length = 4;
    paddle.py = (max_y / 12) - (paddle.length / 6);
    paddle.px = max_x - 12;
...