c++ Konsola , kolizje gracza i poziom
Ostatnio zmodyfikowano 2012-06-02 22:40
KiwiWojtas Temat założony przez niniejszego użytkownika |
c++ Konsola , kolizje gracza i poziom » 2012-06-01 20:04:15 Witam serdecznie. Piszę właśnie grę typu "labirynt" i natknąłem się na dwa problemy. Mianowicie nie wiem jak zrobić kolizje gracza z murem tak aby ten uniemożliwił przejście prze niego. Oraz nie wiem jak zrobić wyświetlanie labiryntu z pliku tekstowego. W internecie znalazłem kod poruszania się i wszystko rozumiem oprócz jednej funkcji mianowicie int main(int argc, char *argv[]). Jeśli byście mi mogli pomóc byłbym bardzo wdzięczny. |
|
m4tx |
» 2012-06-01 20:13:11 jak zrobić kolizje gracza z murem |
wyświetlanie labiryntu z pliku tekstowego | Obsługa plikówwszystko rozumiem oprócz jednej funkcji mianowicie int main(int argc, char *argv[]) |
Co? Ty w ogóle napisałeś cokolwiek kiedykolwiek w C++?... Kurs C++ |
|
KiwiWojtas Temat założony przez niniejszego użytkownika |
» 2012-06-01 20:30:44 Dobra dzięki za pomoc a co do tego ostatniego to rozumiem int main tylko niezbyt rozumiem tego co jest w nawiasie. Napisałem w c++ prosty kalkulator jak już o to pytasz. |
|
xevuel |
» 2012-06-01 20:38:23 To są argumenty, które przekazujesz przy uruchamianiu programu. Czyli jak otworzysz cmd, wpiszesz nazwa_twojego_programu.exe przykladowy_parametr abc726 , to argv[0] będzie wynosić nazwa_twojego_programu.exe, argv[1] będzie równe przykladowy_parametr, a argv[2] abc726. argc to rozmiar tablicy argv. Przykładowo: Chcesz otworzyć plik podany przez użytkownika. Piszesz kod: int main( int argc, char * argv[] ) { otworz_plik( argv[ 1 ] ); return 0; }
I teraz po wrzuceniu na ikonę twojego programu jakiegoś pliku; kliknięciu "Otwórz za pomocą" i wybraniu twojego programu; czy też uruchomieniu z konsoli program.exe file.txt , twój program otworzy go za pomocą funkcji otworz_plik. Oczywiście pasowałoby jeszcze sprawdzić, czy w ogóle użytkownik podał jakiś plik. |
|
KiwiWojtas Temat założony przez niniejszego użytkownika |
» 2012-06-01 21:53:28 Jeśli można by było to poproszę przykład takiej kolizji w konsoli bo to co znalazłem nie jest na konsole. |
|
Sparrow-hawk |
» 2012-06-01 22:53:41 Proponowałbym zadeklarować strukturę zawierającą dwie zmienne typu int, określające pozycję X,Y. Następnie vector (Na początek o stałym rozmiarze), np 64 pola typu char. Zakładam, że mapa zbudowana jest z gwiazdek, które oznaczają ściany. Kolizję wykryłbym w takim przypadku np. tak: #include<vector> #include<iostream>
using namespace std;
struct pozycja { int X; int Y; };
vector < char > mapa( 64 );
bool kolizja( pozycja & _poz ) { for( unsigned int i = 0; i < 64; i++ ) { if( mapa[ _poz.X + 8 * _poz.Y ] == '*' ) return 1; } return 0; }
|
|
KiwiWojtas Temat założony przez niniejszego użytkownika |
» 2012-06-02 09:32:05 Niestety nie działa. |
|
Sparrow-hawk |
» 2012-06-02 11:01:18 Ale co to znaczy, że nie działa? Może pokażesz swój kod tej gry? |
|
« 1 » 2 |