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 ?