Autor Wątek: Silnik kolizyjny  (Przeczytany 3669 razy)

gorini

  • Gość
# Kwiecień 19, 2008, 14:16:13
Witam

Zwracam się z zapytaniem o nazwy gotowych darmowych silników kolizyjnych tzn. takich które oferują intuicyjny system kolizji i nic po za to.
Oczywiście chodzi mi o takie które pracowały by pod c++ w dwu-wymiarowej przestrzeni.
Jakby to miało coś pomóc to pracuje w visual 6.0 i preferuje bibliotekę allegro.h.

Znalazłem takowy "Pmask" który działa pod allegro.h gdyż jest specjalnie pod niego stworzony ponieważ działa na podstawie analizy obrazka a ja szukam takiego który funkcjonował by na podstawie figur geometrycznych, najlepiej aby był intuicyjny w użyciu.

Z góry dziękuje za pomoc i pozdrawiam.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline kacperz1

  • Użytkownik

# Kwiecień 19, 2008, 14:18:58
http://www.newtondynamics.com/

A co do twojego studia to lepiej skorzystaj z Visual C++ 2008 EE. Jest darmowy. msdn.microsoft.com/express

gorini

  • Gość
# Kwiecień 19, 2008, 14:26:06
Mi chodzi tylko o samą kolizje między obiektową(figury geometryczne) i tylko w przestrzeni 2D.

Offline kacperz1

  • Użytkownik

# Kwiecień 19, 2008, 14:29:27

gorini

  • Gość
# Kwiecień 19, 2008, 14:34:26
Idealnie, dziękuje ci za pomoc. ( dostajesz rox'a ;) )

gorini

  • Gość
# Kwiecień 19, 2008, 15:25:52
Jeszcze jedno.
Mianowicie po załadowaniu plików do kompilatora z "Box2D_v2.0.1.rar" którego ściągnąłem ze strony którą mi podałeś kompiluje jeden z programu z folderu "example" i wyskakują mi oto takie błędy:

--------------------Configuration: HelloWorld - Win32 Debug--------------------
Compiling...
HelloWorld.cpp
f:\program files\microsoft visual studio\vc98\source\common\b2math.h(556) : error C2782: 'T __cdecl b2Min(T,T)' : template parameter 'T' is ambiguous
        could be 'struct b2Vec2'
        or       'const struct b2Vec2 &'
f:\program files\microsoft visual studio\vc98\source\common\b2math.h(556) : error C2785: 'T __cdecl b2Min(T,T)' and 'struct b2Vec2 __cdecl b2Min(const struct b2Vec2 &,const struct b2Vec2 &)' have different return types
        f:\program files\microsoft visual studio\vc98\source\common\b2math.h(550) : see declaration of 'b2Min'
f:\program files\microsoft visual studio\vc98\source\common\b2math.h(570) : error C2782: 'T __cdecl b2Max(T,T)' : template parameter 'T' is ambiguous
        could be 'struct b2Vec2'
        or       'const struct b2Vec2 &'
f:\program files\microsoft visual studio\vc98\source\common\b2math.h(570) : error C2785: 'T __cdecl b2Max(T,T)' and 'struct b2Vec2 __cdecl b2Max(const struct b2Vec2 &,const struct b2Vec2 &)' have different return types
        f:\program files\microsoft visual studio\vc98\source\common\b2math.h(564) : see declaration of 'b2Max'
f:\program files\microsoft visual studio\vc98\source\common\b2math.h(584) : error C2782: 'T __cdecl b2Clamp(T,T,T)' : template parameter 'T' is ambiguous
        could be 'struct b2Vec2'
        or       'const struct b2Vec2 &'
f:\program files\microsoft visual studio\vc98\source\common\b2math.h(584) : error C2785: 'T __cdecl b2Clamp(T,T,T)' and 'struct b2Vec2 __cdecl b2Clamp(const struct b2Vec2 &,const struct b2Vec2 &,const struct b2Vec2 &)' have different return types
        f:\program files\microsoft visual studio\vc98\source\common\b2math.h(578) : see declaration of 'b2Clamp'
Error executing cl.exe.

HelloWorld.exe - 6 error(s), 0 warning(s)

Mógłbyś coś zaradzić? :) Ja już wszystko na co mnie stać próbowałem.

Offline kacperz1

  • Użytkownik

# Kwiecień 19, 2008, 15:34:23
Tak jak już wcześniej pisałem sądze że to wina studia w którym pracujesz. Zmień sobie na VC++2008EE. Darmowo do ściągnięcia z msdn.microsoft.com/express

gorini

  • Gość
# Kwiecień 19, 2008, 16:13:42
Użyłem VC++2005EE i działa Ok. ale po zaimplementowaniu biblioteczki allegro.h tzn dodaniu #include <allegro.h> i alleg.lib pojawiają się nieznane mi błędy :

1>------ Build started: Project: HelloWorld, Configuration: Debug Win32 ------
1>Linking...
1>LIBCMTD.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
1>.\Debug/HelloWorld.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://f:\Documents and Settings\Kamil\Pulpit\HelloWorld\Debug\BuildLog.htm"
1>HelloWorld - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Czy ktoś o ile taka osoba jest która zna allegro i box2D mogła by się tu wypowiedzieć?

Taki lekki OffTop : Wiesz kacperz1 jak uzupełnić braki bibliotek w VC++ 2005 EE tzn skąd je wsiąść?
« Ostatnia zmiana: Kwiecień 19, 2008, 16:50:09 wysłana przez gorini »

Offline Mattrick

  • Użytkownik

# Kwiecień 19, 2008, 17:20:21
Błąd linkera - albo nie dodałeś liba albo nie napisałeś ciała funkcji. ; p

@up
Sciągnąć 2008 EE ew. ściągnąć Platform SDK jeśli o to ci chodzi.
« Ostatnia zmiana: Kwiecień 19, 2008, 17:27:07 wysłana przez Mattrick »

gorini

  • Gość
# Kwiecień 19, 2008, 17:37:08
Nie znam sie na allegro, ale moze zly typ projektu utworzyles?
Czepia sie funkcji main.
Ale bo w ogole nie utworzyles maina  :p

//EDIT:
Jesli masz MSVC++ 2005 to PSDK polecam sciagnac.
Ale, tak jak przedmowca, polecam wersje 2008.
Nie trzeba kombinowac, zeby napiasc jakas aplikacje win32 pod winApi

link do PSDK:
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
« Ostatnia zmiana: Kwiecień 19, 2008, 17:42:31 wysłana przez bs.mechanik »

gorini

  • Gość
# Kwiecień 19, 2008, 18:31:37
Dokładnie zły typ projektu, zapomniałem że w vc2005 nie ma do wyboru win32, i że można tylko pod konsole.
Dzięki za link ale ściągnę wersie 2008 skoro mówisz że już jest zaopatrzona we większość standardów.
Ale za duży offtop się robi ;)
« Ostatnia zmiana: Kwiecień 19, 2008, 18:33:13 wysłana przez gorini »

gorini

  • Gość
# Kwiecień 20, 2008, 13:36:46
Przepraszam za dwa posty obok siebie, ale nie było by widoczne, że jest nowa wiadomość.

Wie ktoś może jak zwrócić współrzędne każdego z wierzchołków figury jak mam dane tylko ciało?
tzn. b2Body* body;
a w nim stworzoną figurę:

b2PolygonDef shapeDef;
shapeDef.SetAsBox(10.0f, 5.0f);
body->CreateShape(&shapeDef);

Przeglądam kody silnika ale bez skutku.