Warsztat - Programowanie gier

Lipiec 30, 2010, 17:32:45 *
Witamy, Gość. Zaloguj się, lub zarejestruj proszę.

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Warsztat, Regulamin forum, #warsztat, Wiki, FAQ, NoPaste, Mapa
 
   Strona główna   Pomoc Szukaj Zaloguj się Rejestracja  
Strony: [1]
  Drukuj  
Autor Wątek: kolizja? nie wiem jak to nazwac. [C++]  (Przeczytany 868 razy)
Maciohaker
Newbie
*

wiadomości: 40


!Master of the Puppets!


Zobacz profil
« : Luty 25, 2010, 22:47:00 »

Siema. mam problem bo nie mam pojecia jak zrobic 4 rzeczy.

#1
Probowalem zrobic jakas kolizja w grze normalnej co sie chodzi bohaterem iwidok jest jakby znad jego ale to nie
top-down. Chodzi mi o zwykleniewchodzenie na dach budynku ani na ludzi itd. itp.

#2
Nasz bohater ma bron biala. powiedzmy ze to jest miecz. i jak sie chodzi w 8 kierunkow  to on moze kogos ciachnac tym oto mieczem. i jak potwor czyli klasa ma sie dowiedziec ze zostal przeciety i nawet odjac sobie HP.

#3
Czym by byla jakas gra o fabule jakby nie mozna jej bylo zapisac. Chce zrobic cos takiego zeby w niektorych miejscach gra sie sama zapisywala. takie checkpointy. i po uruchomieniu w menu zeby mozna bylo wziac kontynuuj lub nowa gra.

#4
Jakies AI chcialem zeby bylo i zeby potwory przeszkody omijaly.

#################################

#1 i #2  probowalem rozwiazac tworzac niewidzialna bitmape o rozmiarach mapy i tam zeby kazdy ludek rysowal na niej czarne kolo a dany ludek sprawdzal czy juz stoi w tym kole czy nie. jezeli tak to niemoze isc w lewo itd. itp.

Todzialalo ale jakos koslawo wiec rzucilem to.

Nie prosze was o kod bo to nie ma sensu. Chce abyscie mi wyjasnili jakby koncepcje? nie....Definicje jak to zrobic a ja sam sobie chce napisac kod. Bo jezeli mipodacie kod to ja sie nie naucze.

Zgory thanks i czekam na odpowiedz.

Zapisane
lastseeds
Sr. Member
****

wiadomości: 389


Zobacz profil
« Odpowiedz #1 : Luty 25, 2010, 22:56:13 »

operuj na liczbach,odleglosciach, a nie na tym co rysujesz : jest taka kolejnosc
robwszystkozobiektami();
rysuj(); //i tutaj tylko wpiernizamy na ekran pozmieniane obiekty
Zapisane
Maciohaker
Newbie
*

wiadomości: 40


!Master of the Puppets!


Zobacz profil
« Odpowiedz #2 : Luty 25, 2010, 22:59:31 »

wiem ze mam operowac na liczbach i odleglosciach no przeciesz nie na kamieniach na dworze(chociaz teraz to snieg jest). Ja prosze tylko o definicje bo nie rozumiem jak to zrobic. A z ta kolejnascia to mam tak jak podales.
Zapisane
Gabos
Newbie
*

wiadomości: 11


Zobacz profil
« Odpowiedz #3 : Luty 25, 2010, 23:10:33 »

Nie bluzgajcie mnie itp , bo te pomysły mogą się nie sprawdzić. Tak na szybko pomyślałem :

#2.
Taki mały warunek :

Jeśli naciśnięta spacja (np) i odległość ludka od wroga jest mniejsza niż np 10 to odejmujesz wrogowi hp.
Trochę z tym pokombinujesz i powinno działać.

#3.
Jeśli masz mapę kafelkową , to ustal że jeśli wchodzi się w dany kafelek to po prostu gra się zapisuje.
Ew. zrobić tak samo tylko ,że z współrzędnymi ( coś jak if ludek.x = 100 ZapiszGre(); )

#4.
Tak na szybko :

If wrog.x > ludek.x
wrog.x--

tak samo z wrog.y i ludek.y

Wróg będzie cię ganiał wtedy. Nie wiem jak z przeszkodami. Według mnie powinien omijać.
Zapisane
Maciohaker
Newbie
*

wiadomości: 40


!Master of the Puppets!


Zobacz profil
« Odpowiedz #4 : Luty 25, 2010, 23:18:56 »

heh nie no spoko dzięki  #2 mi się przydała spróbuję póżniej.

#3 To co napisałeś to wiem jak zrobić. Chodzi mi o sam moment zapisu Jak tego wielkiego czynu dokonać.

#4 Mam tak zrobionę i potwór mnie gania tylko jak się pojawi przeszkoda typu:

H     |P|M

to potwór stoi i czeka az się przesunę w dół albo w górę.

ogólnie dzięki za chęci
Zapisane
Oti
SuperHero Member
******

wiadomości: 1021


GieGie: 3957147


Zobacz profil
« Odpowiedz #5 : Luty 25, 2010, 23:37:09 »

#4.
Tak na szybko :

If wrog.x > ludek.x
wrog.x--

tak samo z wrog.y i ludek.y

Wróg będzie cię ganiał wtedy. Nie wiem jak z przeszkodami. Według mnie powinien omijać.
Dlaczego miałby omijać? Jakim cudem? Od takich rzeczy jest algorytm A*.

#3 To co napisałeś to wiem jak zrobić. Chodzi mi o sam moment zapisu Jak tego wielkiego czynu dokonać.
Otwierasz sobie plik, np. Save.sav, czy coś i na przykład fprintfem zapisujesz do niego różne zmienne. Tak samo przy wczytywaniu, tylko, że już korzystasz z fscanf.

@Maciohaker
Mógłbyś wywalić ten potężny obrazek z sygnatury? Naprawdę niewiele nas obchodzi, że znudziło Ci się HG i teraz żyjesz metallicą. Smiley To "piszę poprawnie po polsku" tez w Twoim przypadku mocno przesadzone. Smiley

Pozdrawiam.
Zapisane

Kurs allegro mojego autorstwa
Służę pomocą na gg: 3957147 .
Maciohaker
Newbie
*

wiadomości: 40


!Master of the Puppets!


Zobacz profil
« Odpowiedz #6 : Marzec 02, 2010, 17:51:51 »

Mam proble jeszcze jeden mały. Kiedy sciagnolem  allegro pod VC++ 08 i dalem w input alleg.lib i wybralem plikacje konsolowa a i tak mi blad wywala taki o:

Kod:
MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
E:\Pliki\Projekty\tribe_wars\Tribe Wars\Debug\Tribe Wars.exe : fatal error LNK1120: 1 unresolved externals
Build log was saved at "file://e:\Pliki\Projekty\tribe_wars\Tribe Wars\Tribe Wars\Debug\BuildLog.htm"
Tribe Wars - 2 error(s), 0 warning(s)

A wpisalem tylko :
Kod
#include <allegro.h>
 
int main(){
allegro_init();
allegro_exit();
return 0;
}END_OF_MAIN();
Zapisane
Wine
Gość
« Odpowiedz #7 : Marzec 02, 2010, 17:53:15 »

Kod:
#undef main

-W
Zapisane
Maciohaker
Newbie
*

wiadomości: 40


!Master of the Puppets!


Zobacz profil
« Odpowiedz #8 : Marzec 02, 2010, 19:29:38 »

Wpisalem
Kod:
#undef main
i mi nie dziala Undecided
Zapisane
Wine
Gość
« Odpowiedz #9 : Marzec 02, 2010, 20:07:51 »

Gdy kompiluję coś takiego:
Kod
#include <allegro.h>
#pragma comment(lib, "alleg.lib")
 
int main()
{
allegro_init();
allegro_exit();
return 0;
}
Dostaję taki błąd:
Kod:
MSVCRTD.lib(crtexe.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
E:\_proj\test\Debug\test.exe : fatal error LNK1120: 1 unresolved externals

A gdy kompiluję coś takiego:
Kod
#include <allegro.h>
#pragma comment(lib, "alleg.lib")
 
#undef main
 
int main()
{
allegro_init();
allegro_exit();
return 0;
}
Nie dostaję żadnego.

Wniosek? Sprawdź w którym miejscu wstawiłeś #undef main. Powinno być tak jak wyżej.

-W

@down: A to ciekawe bo ja również wybrałem aplikację konsolową...
« Ostatnia zmiana: Marzec 02, 2010, 21:20:01 wysłane przez Wine » Zapisane
MaxGarden
Sr. Member
****

wiadomości: 331


Moje GG: 7327977


Zobacz profil
« Odpowiedz #10 : Marzec 02, 2010, 21:14:57 »

Nie chodzi o to chodzi o to :
i wybralem plikacje konsolowa

Weź pusty projekt (Empty Project) i wszystko będzie działało  Smiley
Zapisane

MaxGarden==Gorgon (Musiałem zmienić bo Gorgon dawno nie używam Grin)
Maciohaker
Newbie
*

wiadomości: 40


!Master of the Puppets!


Zobacz profil
« Odpowiedz #11 : Marzec 03, 2010, 17:19:09 »

wzialem pusty projekt. dalem to #undef main pod include-ami ale cos jeszcze nie dzialalo i jak usunalem END_OF_MAIN(); to zadzialalodzieki za pomoc.
Zapisane
Lipek Samo Zło
Full Member
***

wiadomości: 141



Zobacz profil
« Odpowiedz #12 : Marzec 03, 2010, 17:58:53 »

Siema. mam problem bo nie mam pojecia jak zrobic 4 rzeczy.

#1
Probowalem zrobic jakas kolizja w grze normalnej co sie chodzi bohaterem iwidok jest jakby znad jego ale to nie
top-down. Chodzi mi o zwykleniewchodzenie na dach budynku ani na ludzi itd. itp.

#2
Nasz bohater ma bron biala. powiedzmy ze to jest miecz. i jak sie chodzi w 8 kierunkow  to on moze kogos ciachnac tym oto mieczem. i jak potwor czyli klasa ma sie dowiedziec ze zostal przeciety i nawet odjac sobie HP.

#3
Czym by byla jakas gra o fabule jakby nie mozna jej bylo zapisac. Chce zrobic cos takiego zeby w niektorych miejscach gra sie sama zapisywala. takie checkpointy. i po uruchomieniu w menu zeby mozna bylo wziac kontynuuj lub nowa gra.

#4
Jakies AI chcialem zeby bylo i zeby potwory przeszkody omijaly.


Ad. 4:
Zainteresuj się np. tym: http://www.grinninglizard.com/MicroPather/ lub, jeśli chcesz to spróbuj sam zaimplementować A* pomocna może być książka "AI by Example" która w formie elektronicznej krąży w sieci. Możesz również pokusić się o elementy Steering Behaviours. Wszystko zależy od tego czego potrzebujesz Smiley

Ad. 3:
Możesz zawsze użyć plików xml'owych. Polecam tinyXML.
Zapisane

"You met me at a very strange time in my life."

Maksymalna inspiracja do działania: http://www.youtube.com/watch?v=zlfKdbWwruY Smiley
hfjh
Full Member
***

wiadomości: 102


Zobacz profil
« Odpowiedz #13 : Marzec 20, 2010, 19:01:06 »

#1 Możesz napisać bardziej zrozumiale?
#3 Klasy potworów, bohatera, dziennika itp. maja metody zapisujące swój stan jako tekst (i na odwrót). Ty po prostu wywołujesz te metody i zapisujesz tekst do pliku.
#4 To co, mamy ci napisać?
Zapisane

Zazdrościsz mi mojego podpisu?
Strony: [1]
  Drukuj  
 
Skocz do:  

Hosting: Polska Strefa - Ogłoszenia
Powered by SMF 1.1.7 | SMF © 2006, Simple Machines LLC