Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

pacman c++ - automatyczne poruszanie się duszków

#1
pacman c++ - automatyczne poruszanie się duszków
Witam, piszę pacmana w c++ w bibliotece winBGIm (proszę tylko nie pisać czemu taka, a nie inna) i natknąłem się na problem z automatycznym poruszaniem. Napisałem funkcję przeciwnik(), która rysuje przeciwnika oraz przeciwnik2(), która ma zająć się poruszaniem automatycznym. Funkcję przeciwnik2() wywołuję w int main() - i nie działa. Poniżej podaję kod:
Kod:
int _x=75*2; //położenie początkowe x przeciwnika
int _y=25*2; ////położenie początkowe y przeciwnika
int fdir=0;
void przeciwnik(int x, int y){
   setcolor(YELLOW);
   circle(x, y, 20);
   setfillstyle(SOLID_FILL, YELLOW);
   floodfill(x, y, YELLOW);
}

void przeciwnik2()
{
  przeciwnik(_x,_y);
   if (fdir ==0)
   {
       if(rys[_y/20][(_x-20)/20] !=1)  _x-=20;
       else fdir=rand()%3;
   }
   if (fdir ==1)
   {
       if(getpixel(_x,_y)==BLACK)  _x+=20;
       else fdir=rand()%3;
   }
   if (fdir ==2)
   {
       if(rys[(_y-20)/20][_x/20] !=1) _y-=20;
       else fdir=rand()%3;
   }
   if (fdir ==3)
   {
       if(rys[(_y-20)/20][_x/20] !=1) _y+=20;
       else fdir=rand()%3;
   }
   if (_x<=-30) _x=800;
   else if(_x>=800) _x=-20;
}
Mapa jest zbudowana tak, że 0 to czarne tło, tj. tła po którym ma poruszać się przeciwnik a 1 to ściana. Ktoś pomoże jak to zrobić tak aby działało? Wesoły
 System operacyjny: windows_eight Przeglądarka: chrome
#2
RE: pacman c++ - automatyczne poruszanie się duszków
Witam, wynik działania
Kod:
rand() % 3
nigdy nie osiągnie 3 - zmień na
Kod:
rand() % 4
W jakiejś pętli wywołujesz tę funkcję, czy tylko raz? Rozumiem, że tablica rys jest mapą, po której się porusza przeciwnik?
Gdy x=-10, (x-20)/20=-1 - może nastąpić naruszenie ochrony pamięci z powodu sięgnięcia za tablicę.
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#3
RE: pacman c++ - automatyczne poruszanie się duszków
tak tak, tablica rys jest mapą, mapą typu char[][]. Nie wywołuję tego w żadnej funkcji, po prosto w int main() wstawiam tą funkcję. Jeśli ją wstawię do pętli do{...w tej pętli mam sterowanie obiektu, którym gracz steruje}while(kod!=ESC); to obiekt się porusza, jednak tylko po linii prostej, tj. na krzyżówce nagle znika.
 System operacyjny: windows_eight Przeglądarka: chrome
#4
RE: pacman c++ - automatyczne poruszanie się duszków
Tak jest, zwiększając liczbę z 3 na 4 problem się rozwiązał! Dziękuję bardzo Wesoły funkcję wywołuję w pętli do{}, jednak mam pytanie - mam teraz 4 duszki i jak zrobić żeby ruszały się jednocześnie, tj. animacja kilku obiektów? Narazie jest tak, że jeden duszek robi krok i znika, potem drugi, trzeci, czwarty i tak w kółko. Jak to rozwiązać?
 System operacyjny: windows_eight Przeglądarka: chrome
#5
RE: pacman c++ - automatyczne poruszanie się duszków
Ja jak pisałem PacMana, to duchy trzymałem w tablicy i przy rysowaniu sceny wystarczyło przeiterować po tablicy i wywołać metodę rysującą obiekt.
 System operacyjny: linux_ubuntu Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki (pacman c++ - automatyczne poruszanie się duszków)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  automatyczne tworzenie pliku tekstowego alinja 3 7267 18.03.2017, 20:51
Ostatni post: Szachista
  [BATCH] Automatyczne przerywanie skryptu rafineria888 4 7112 25.01.2016, 18:21
Ostatni post: broda99
  Javascript/JQuery - Automatyczne kliknięcie klawisza Enter po kliknięciu myszką w button Andreo 0 1197 20.09.2014, 10:33
Ostatni post: Andreo

Skocz do:


Wybrane wątki (pacman c++ - automatyczne poruszanie się duszków)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Transfer plików via FTP Visual Basic FireBytes 3 4960 15.08.2019 07:41
Ostatni post: Szachista
  Menu wysuwane z boku patryk67 1 3319 07.08.2019 12:43
Ostatni post: aht
  Visual Basic Excel l.całkowitą przedstawić w postaci szesnastkowej fugaz 4 4892 18.06.2019 21:36
Ostatni post: fugaz
  Nauka do Olimpiady Informatycznej? piotr0905 1 4853 08.06.2019 16:50
Ostatni post: wlisik
Ściana Prosta gra w Builder C++ Kiranek1 1 4790 31.05.2019 15:20
Ostatni post: Szachista
  Menu (Nie widoczne długie opisy) wanhelsing 5 6568 28.04.2019 19:31
Ostatni post: koneton
  Skrypt usuwający pliki sylwiaa1 2 2897 28.04.2019 15:20
Ostatni post: sylwiaa1
  Środowisko do assemblera Physicist 4 6205 21.04.2019 14:04
Ostatni post: Ajgor
  VBA excel dmjs 6 6551 17.04.2019 10:20
Ostatni post: ptrick
  C++ - sens pogłębiania nauki gbr 5 7022 25.03.2019 12:53
Ostatni post: koneton
  Klasa wewnętrzna w C++ Physicist 4 6738 23.03.2019 18:28
Ostatni post: Physicist
  Ruby on Rails - tutoriale luciussulla 0 5920 23.03.2019 16:49
Ostatni post: luciussulla
Big Grin Czy dostane sie technikum informatycznego klaudiusz20046 6 9005 21.03.2019 01:28
Ostatni post: UnableToSee
  [C#] Program do moderacji czatów gier wiktrom12 0 6294 07.03.2019 15:33
Ostatni post: wiktrom12
  Mój pierwszy projekt - Pomoc rafal12999 1 6794 07.02.2019 22:01
Ostatni post: Szachista