Witam. Pisze gre 'pong' w <ncurses.h> i mam problem z obsluga 'pileczki' i 'paletki'.
Nie moge napisac(nie wiem czy dobrze sie za to zabralem) zeby pileczka sobie latala po boisku i zebym mogl w tym czasie swobodnie poruszac paletką(ami). W tym co napisalem pileczka przesuwa sie dopieor po tym jak nacisne klawisz klawiatury.

oto moje wypociny [czesc]:

#include <ncurses.h>

/* czesc programu z pilka, kreskami i paletka. Pilka nie lata sama(jest uzalezniona od paletki) */

int main() {
        WINDOW * pilka;
        WINDOW * gorna_linia;
        WINDOW * dolna_linia;
    WINDOW * paletka1;

    int i,x, y, c;

        initscr();
        i = 12;
    noecho();
        pilka = newwin(1, 1, i, i);
        gorna_linia=newwin(1,130,5,12);
        dolna_linia=newwin(1,130,45,12);
    paletka1 = newwin(5, 1, 5, 11);

    wprintw(paletka1, "|||||||||||");
        wprintw(pilka,"*");
    wprintw(gorna_linia,"------------------------------------------------------");
    wprintw(dolna_linia,"------------------------------------------------------");  
    keypad(paletka1, TRUE); 
    while(i < 45) { 
                i++;
                mvwin(pilka, i, i);
                touchwin(stdscr); touchwin(gorna_linia);touchwin(dolna_linia);touchwin(paletka1);
                refresh();
                wrefresh(gorna_linia); wrefresh(dolna_linia); wrefresh(pilka);wrefresh(paletka1);        
        if (c = wgetch(paletka1)) {
            if (c == KEY_UP) {
            getbegyx(paletka1, y, x);
            y--;
            mvwin(paletka1, y, x);
        } else if (c == KEY_DOWN) {
            getbegyx(paletka1, y, x);
            y++;
            mvwin(paletka1, y, x);
        }       
         wrefresh(gorna_linia); wrefresh(dolna_linia); wrefresh(pilka);wrefresh(paletka1);
        doupdate();
        } 
    usleep(100000);
        }
    delwin(paletka1);
        delwin(gorna_linia);
        delwin(dolna_linia);
        delwin(pilka);
        endwin();
        return 0;
}

jak to poprawic ?