Niezalezna od gracza predkosc pilki

Niezalezna od gracza predkosc pilki
BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

Wczesniej mialem problem ze pilka w grze poruszala sie tylko wtedy jak poruszyl sie gracz, teraz dalem tam funkcje timeout i pilka wykonuje ruch nawet gdy gracz tego nie robi ale, gdy gracz sie poruszy pilka zaczyna leciec z inna predkoscia, szybciej, a chcialbym zeby zawsze leciala z ta sama predkoscia...
to funkcja main:

Kopiuj
int main(void){
  WINDOW *my_wins[2];
  srand(time(NULL));
    
  initscr();
  timeout(-1);
  check_term();
  clear();
  curs_set(0);
  noecho();
  cbreak();
  get_color();

  menu();
  draw_pong();
  
  my_wins[0] = newwin(HEIGHT, WIDTH, STARTY, STARTX);
  my_wins[1] = newwin(HEIGHT - 4, WIDTH - 22, STARTY - 4, STARTX - 24);
  
  game(my_wins[0],my_wins[1]);
  
  endwin();
  return 0;
}

a to funkcja gry

Kopiuj
int game(WINDOW *win1,WINDOW *win2){
  char ch;
  struct game_data *gd;
 
  if ((gd = init_game_data()) == NULL) {
    mvprintw(0, 0, "Could not allocate memory for the game_data.");
    return -1;
  }
  refresh();
  game_win(win1, gd);
  stat_win(win2, gd);
 
  while((ch = getch()) != 10){
    switch(ch){
    case BACKWARD:
      if(gd->player->x > 1)
    --gd->player->x;
      break;
    case FORWARD:
      if(gd->player->x < (WIDTH - PADDLE_WIDTH) - 1)
    ++gd->player->x;
      break;
    default:
      break;
    }
    ball_inst(gd);
    ball_move(gd);
    erase();
    refresh();
    game_win(win1, gd);
    stat_win(win2, gd);
 
  }
 

a tu caly kod: https://bpaste.net/show/f2ab69e28c61
Nie wiem co tu zrobic, czytalem troche o petlach czasu rzeczywistego no ale nie mam pojecia, chce zeby pilka zawsze bez wzgledu na to czy gracz sie poruszyl czy nie, leciala ze stala predkoscia.
Mysle ze pomogloby danie timeout do petli dla getcha i sprawdzanie w ifie potem czy minela okreslona ilosc czasu, tylko wlasnie nie wiem jak to dobrze sprawdzic, te liczby ktore sprawdzaja aktualny czas w sekundach w c sa duze i nie ogarniam jak to sprawdzac... moglby ktos z tym pomoc ?

feni000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 124
0

Wydaje mi się, że będziesz potrzebował poczytać coś o sterowaniu procesami i wątkami

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

jakimi procesami i jakimi watkami -.- Watpie...

feni000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 124
0

Założyć wątek na ruch piłeczki, żeby się wykonywał non stop z boku.

EDIT: Mogę się mylić, nigdy nie pisałem takiego typu gry, może da się to zrobić w inny sposób :P

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

Jaki watek ;c

NoZi
  • Rejestracja: dni
  • Ostatnio: dni
0

nie wiesz co to jest wątek ?

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

Nie wiem co to watek, nie moge znalezc nic w internecie, co to jest watek ?

NoZi
  • Rejestracja: dni
  • Ostatnio: dni
0

Nawet informacji nie umiesz wyszukać ? Odpuść sobie programowanie
https://pl.wikipedia.org/wiki/W%C4%85tek_(informatyka)

feni000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 124
0

Poczytaj o tworzeniu wątków, zamykaniu, handle-ach, jak zamykać, jak otwierać proces, jak zwalniać handle-a ;)

EDIT: Logistycznie by to wyglądało tak, że masz jeden proces, który będzie odpowiadał za ruch piłki (procesem może być np jakaś twoja funkcja, która sobie napisałeś na ruch piłki, napiszesz sobie ją w taki sposób, żeby piłka ruszała się non-stop chyba, że natrafi na jakąś przeszkodę). Proces ten wykonuje się cały czas w trakcie uruchomienia go w programie, musisz poczytać o komunikacji między procesowej. Mogę się mylić, jeśli wprowadzam kolegę w błąd to bardzo proszę, żeby ktoś mnie poprawił :).

XO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 58
0

Wątek to jest część programu wykonywana współbieżnie w obrębie jednego procesu. W jednym procesie może istnieć wiele wątków. Tylko nie pytaj się teraz co to proces.

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

Co to jest proces ? I czym jest ten watek, to jest funkcja ? a proces to co ? tez funkcja ? nie rozumiem, to sa funkcje ? jesli nie to jak je napisac

feni000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 124
0

Przeczytaj mój post, tak procesem może być funkcja. Nawet będziesz ją widział w menedżerze zadań :P...

  • Rejestracja: dni
  • Ostatnio: dni
0

xD

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

A jeszcze chcialem zapytac, jak stworzyc funkcje ktora bedzie procesem ? Oraz czy watek to tez funkcja ?

feni000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 124
BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

sequoia.iiar.pwr.wroc.pl/~witold/unixprog/upr_ipc.pdf <- to bedzie dobre ? tutaj sie dowiem wszystkiego co to watek i proces ?

fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
0

http://cpp0x.pl/kursy/Kurs-WinAPI-C++/Zaawansowane/Watki/337

poczytaj ten kurs. Po jego przeczytaniu googluj na zasadzie
Thread linux c

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

Ale czemu o c++ ? Ja pisze w c, ten kurs o watkach w c++ wyjasni mi czym sa watki w c ? Nieee, nie chce tego tutorialu w c++ o watkach, nie rozumiem tamtych funkcji nie chce mi sie ich szukac, wolalbym tutorial o watkach w c. mialby ktos taki ?

fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
0

w przeciwienstwie do Ciebie ja potrafie czytac
Wiem ze o C. Przeczytaj ten link ktory Ci dalem. Kod praktycznie bedzie dzialal w C
A tu nawet nie chodzi o jezyk chodzi o konpcepcje. a pozniej zrob tak jak pisalem w moim pierwszym poscie. googluj

feni000
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 124
1

Ton ostatniego postu raczej nie pomoże Ci w uzyskaniu odpowiedzi ;s

nie rozumiem tamtych funkcji nie chce mi sie ich szukac

Z takim podejściem to radzę się przekwalifikować ;)

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
3

Ludzie, ludzie, po co tutaj jakieś wątki?
Zwykle non-blocking IO wystarczy, a ncurses na bank ma je wbudowane.

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
0

Patryk27, no to doradz cos jak to moge zrobic

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

A powiedz mi proszę, jakie słowa kluczowe wpisywałeś w Google po dowiedzeniu się, że ncurses ma ficzer non-blocking IO, a jakie to słowa nie zwróciły żadnego ciekawego wątku choćby na StackOverflow?

BU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 72
1

Dobra okej poradzilem sobie z tematem, pilka dziala jak marzenie, a teraz usiade na dluzej i poczytam o tych roznych rzeczach co mi napisal ten chlopak z avatarem jakiegos bullldoga, dzieki !

  • Rejestracja: dni
  • Ostatnio: dni
1

Poradziłeś sobie czy, po raz kolejny, koledzy z warsztatu napisali Ci program?

http://forum.warsztat.gd/index.php?topic=30377.0

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.