-->

poniedziałek, 8 lipca 2013

Box2D w XNA


Pisząc aplikację na Android używam często silnika fizyki o nazwie Box2D. Jest to jeden z lepszych silników fizyki dostępnych dla grafiki dwuwymiarowej. Jest do niego mnóstwo przykładów i poradników. Dzięki niemu kulka w Teeter Pro uderza o ściany a ciężarówka w Parkin Truck może mieć kolizje. Wystarczy stworzyć świat, dodać do niego kształty i zacząć aktualizować co jakiś określony czas stworzony świat aby zobaczyć że wszystko działa.

W przypadku programowania w XNA możemy użyć box2D-XNA (nie aktualizowany od dawna) lub użyć autorskiej nakładki na Box2D o nazwie Farseer Physic. Autor zapowiedział że nie zrobi supportu dla WP8 a tym samym MonoGame, ale za niedługo spróbuję przystosować Farseera dla MonoGame (być może wystarczy podmienić przestrzenie nazw z XNA na Monogame). Na tą chwilę udało mi się uruchomić Farseera z WP7 i XNA 4. Całość zajęła mi bardzo dużo czasu, Farsser nie chciał się skompilować i wyprodukować pliku .dll, który później dołączamy do projektu. Dlatego też dodałem źródła Farseer'a do projektu i poprawiłem kilka drobnych błędów. Ma to swoje plusy o tyle, że możemy ingerować w pliki źródłowe i je poprawiać ;]. Kompletny projekt działający z VS Express 2012 , XNA 4.0 możecie znaleźć tutaj. Poniżej screen z ekranu jak to powinno w praktyce wyglądać :]




Czytaj dalej/Read more!

wtorek, 2 lipca 2013

XNA, MonoGame i Windows Phone 8...


Zaczęcie z pisaniem aplikacji na Windows Phone to trudna sprawa. Szczególnie jeżeli zabierasz się za pisanie gier. Jako że chciałem zacząć ćwiczyć pisanie na platformę Microsoftu, musiałem ściągnąć SDK, czyli zestaw narzędzi do tworzenia aplikacji. Przypomnę tylko że dla Androida sprawa jest bardzo prosta, ściągasz ADT Bundle czyli Eclipse z wtyczką ADT dla Androida i zaczynasz pisać.  

W Windows Phone jest inaczej, zanim ściągniesz SDK musisz zobaczyć czy spełniasz wymagania. Dla SDK WP8, musisz posiadać Windows 8 Pro w wersji 64 bitowej (!), kilka GB pamięci RAM oraz trochę GB dysku, zapomniałem o instrukcjach SLAT procesora (Intel Core i3/5/7) i karta grafiki z supportem dla DX10 i WDDM 1.1 żeby emulator mógł chodzić...

Jeżeli to wszystko spełniasz należy zainstalować SDK, licencjonować Visual Studio 2012 (free) no i zacząć pisać. 

Jest tylko problem w czym, tzn. w jakim frameworku... Po chwili poszukiwań znajdujesz że gry można pisać w XNA, biblioteka dla Windows Phona i Xboxa. Niestety porzucona przez Microsoft i już nie wspierana. Co prawda wszystko dobrze działa ale po co pisać w czymś co jest nie aktualizowane. Na szczęście istnieje wolny odpowiednik XNA 4 czyli MonoGame, które cały czas jest rozwijane. Jest także Cocos2D-XNA, który bazuje na MonoGame. 

Wystarczy wpisać MonoGame w wyszukiwarkę, ściągnąć instalator do VS2012 i szkielety aplikacji są gotowe! Wszystko? Niestety nie. W XNA istniało coś takiego jak "content pipeline", który pozwalał popularne formaty plików (png/jpg/wav/mp3) przetworzyć do plików .xnb i narysować lub otworzyć w Twojej grze. W Mono tego nie ma :X, trzeba utworzyć projekt XNA z WP7.x, wrzucić te assety i budować projekt, otrzymasz wtedy pliki .xnb i znów import do projektu z Mono i WP8. Trochę skomplikowane to wszystko jak na samo ogarnięcie środowiska.... Na chwilę obecną działa mi Mono z emulatorem, części z plikami gry nie przerabiałem. Emulator WP chodzi o niebo lepiej niż Androida, choć i tak nie idealnie. Najlepszym rozwiązaniem i tak jest fizyczne urządzenie. Miłym zaskoczeniem jest to iż oficjalnie do obsłużenia są jak na razie trzy rozdielczości :) A jeżeli chodzi o tutoriale to jest ich dość dużo do XNA. Można je przerabiać, ponieważ MonoGame ma nawet identyczne przestrzenie nazw jak XNA.



Czytaj dalej/Read more!