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 7278 18.03.2017, 20:51
Ostatni post: Szachista
  [BATCH] Automatyczne przerywanie skryptu rafineria888 4 7126 25.01.2016, 18:21
Ostatni post: broda99
  Javascript/JQuery - Automatyczne kliknięcie klawisza Enter po kliknięciu myszką w button Andreo 0 1199 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
  Sumowanie licz excel - problem OxyGenE 2 10549 19.12.2018 16:29
Ostatni post: Szachista
  Jaki kod pod pewne zdarzenia visualbasic 2010 aktywny27 4 8290 07.11.2018 13:41
Ostatni post: Ajgor
Scared Ipad Pro programowanie? NissmoOne 4 9162 06.10.2018 12:22
Ostatni post: NissmoOne
  C# pierwsza pusta komórka Excel DonCorleone 0 8374 21.09.2018 16:58
Ostatni post: DonCorleone
  .bat nie kompresuje plików GIENTY 3 8842 06.09.2018 07:20
Ostatni post: broda99
  problem z programem .bat wiktrom12 4 9995 30.08.2018 08:25
Ostatni post: wiktrom12
  Silnik do gier ZigglerGames 1 8668 23.08.2018 09:03
Ostatni post: Szachista
  Chciałbym zrobić prosty plik exe z jedną funkcją densour 4 9411 09.08.2018 16:24
Ostatni post: Ajgor
  Który język wybrać do stworzenia aplikacji synchronizujące pliki z urządzeniem mobiln Elemental 2 2449 18.07.2018 12:05
Ostatni post: Ajgor
  Pomysł napisania programu ROM FireBytes 3 10024 28.06.2018 16:56
Ostatni post: FireBytes
  [VBA] Tworzenie nowego arkusza z danymi z TextBox'a Pioro 4 10382 19.06.2018 23:24
Ostatni post: broda99
  Potwierdzenie na maila po wysłaniu pliku coci 0 9492 13.06.2018 20:37
Ostatni post: coci
  Pieczętowanie Archiwum Jar - Po co? wanhelsing 3 10084 19.05.2018 20:55
Ostatni post: koneton
  Wyszukiwarka w spawnerze nie reaguje na polskie znaki kazik666 0 9892 16.05.2018 12:04
Ostatni post: kazik666
  BASH symulator silnika dawswi1 3 10380 13.05.2018 10:43
Ostatni post: Szachista