Portowanie gier z XNA WP7 na Windows 8 MonoGame

MonoGameDo tej pory omówiłem już projekt MonoGame, jego szablony oraz przedstawiłem sposób na XNA Content Pipeline. Najwyższy czas na portowanie prawdziwej gry z Windows Phone 7 do Windows Store.

Ten post jest częścią serii poświęconej tworzeniu i portowaniu gier dla Windows Store w technologii XNA (MonoGame).

Zobacz też

XNA Content Pipeline w MonoGame

MonoGamePierwszy project MonoGame dla Windows 8 (i nie tylko) gotowy. Ale poprzednio wspomniałem, że obecna wersja MonoGame nie obsługuje XNA Content Pipeline. W tym poście podam rozwiązanie (mam nadzieję, że tylko tymczasowe) tego problemu, bo Content i assety są nam baaaardzo potrzebne.

Ten post jest częścią serii poświęconej tworzeniu i portowaniu gier dla Windows Store w technologii XNA (MonoGame).

Zobacz też

Pierwszy projekt MonoGame dla Windows 8

MonoGameWiemy już czym jest MonoGame i jak je zainstalować więc czas na utworzenie pierwszego projektu.

Ten post jest częścią serii poświęconej tworzeniu i portowaniu gier dla Windows Store w technologii XNA (MonoGame).

Zobacz też

MonoGame na Windows 8

Wreszcie znalazłem czas by zająć się MonoGame dla Windows Store apps.

Ten post jest wstępem do kilku następnych wpisów poświęconych tworzeniu i portowaniu gier dla Windows Store.

Zobacz też

Czytaj dalej

WP XNA 8: Większa kontrola nad gestami (Raw gestures)

Windows Phone 7 GesturesZapewne każdy zna podstawowe gesty ekranów dotykowych. Wiemy też, że każdy telefon z Windows Phone 7 musi spełniać kilka podstawowych wymagań w tej dziedzinie (np. obsługa co najmniej 4 punktów dotyku). Co więcej, w SDK (dokładnie w XNA Framework) znajdziemy wbudowana obsługę pewnych gestów (np. Tap, FreeDrag, DoubleTap, Vertical/HorizontalDrag, Pinch itd). Ale jeśli to dla nas za mało to zakłwsze możemy „zejść” na niższy poziom API i tworzyć własne gesty.

Ten wpis jest częścią cyklu o moich przygodach w tworzeniu gier XNA dla Windows Phone. Czytaj dalej

WP XNA 7: Bardzo wygodna wibracja (VibrationSequence)

Temat wibracji był już przeze mnie raz poruszany, ale po bardzo cennym komentarzu nilphilus’a postanowiłem zmienić mojego VibrationProvider‚a. Kolega zasugerował, że zdecydowanie lepszym podejściem będzie zastosowanie fluent API i tak powstał VibrationSequence (nazwa w sumie robocza, ale na razie niech tak pozostanie).

VibrationSequence

Nowa klasa zdecydowanie poprawiła czytelność kodu (przykład użycia poniżej):

var seq = new VibrationSequence();
seq.Vibrate(200).Pause(100).Vibrate(500).Start();

Ten wpis jest częścią cyklu o moich przygodach w tworzeniu gier XNA dla Windows Phone.

Czytaj dalej

WP XNA 6: Wygodne zarządzanie wibracją (VibrationProvider)

Telefony z Windows Phone wyposażone są w wibrację, z której możemy korzystać zarówno w grach jak i normalnych aplikacjach.

Podstawowe API kontrolera wibracji (VibrateController) pozwana na pojedynczą wibrację, która trwa określony czas. Problem pojawia się gdy chcemy „zagrać” sekwencję wibracji o różnych czasach trwania, z różnymi przerwami. Poniżej przedstawiam klasę VibrationProvider.

Ten wpis jest częścią cyklu o moich przygodach w tworzeniu gier XNA dla Windows Phone. Czytaj dalej

WP XNA 5: Wygodne zarządzanie dźwiękiem (SoundProvider)

Gry w odróżnieniu do aplikacji „biznesowych” często wydają z siebie dźwięki i muzykę. W wytycznych certyfikacji na Windows Phone Marketplace znajdziemy zapisy, które regulują co w kwestii dźwięków jest wymagane z naszej strony. Poniżej przedstawię przydatną klasę SoundProvider, która uprości nam zarządzanie dźwiękiem.

Ten wpis jest częścią cyklu o moich przygodach w tworzeniu gier XNA dla Windows Phone.

Czytaj dalej

WP XNA 4: Jak zapanować nad teksturami (Texture2D, Vector2, Rectangle)

Gdy tworzyłem swoją pierwszą grę (tzn. przepisywałem z tutoriala) nauczyłem się, że:

  • Texture2D – reprezentuje dowolną grafikę, teksturę
  • Vector2 – punkt na ekranie, np. aktualna pozycja gracza/wroga, początkowa pozycja gracza/wroga, pozycja tektury przycisku, pozycja wyświetlania się wyników
  • Rectangle – przydaje się do wykrywania wszelkich kolizji np.: gracz vs wróg, pocisk vs gracz/wróg, palec gracza vs przycisk

Te 3 klasy + metody Update i Draw to w sumie core każdej gry (gry 2D oczywiście).

Ten wpis jest częścią cyklu o moich przygodach w tworzeniu gier XNA dla Windows Phone. Czytaj dalej

WP XNA 1: Zapisywanie stanu gry/aplikacji (IsolatedStorageSettings)

Ten wpis jest częścią cyklu o moich przygodach w tworzeniu gier XNA dla Windows Phone.

Nie ma nic bardziej frustrującego dla zapalonego gracza, gdy po 2 godzinach grania mierzy się z ostatnim bossem, już prawie go zabija… gdy nagle… dzwoni mama! Gra zostaje przerwana i cały postęp gry leci w kosmos…

Wiem! Ktoś powie, że w Mango mamy Fast Application Switching (FAS) i stan aplikacji jest  w pamięci i gra zostanie automatycznie wznowiona. Tak, ale jeśli nasz przywołany gracz po rozmowie z mamą nie wróci do gry i będzie chciał ją dokończyć jutro, mamy niemal pewność, że naszej gry nie będzie już w pamięci i mamy problem.

Z pomocą przychodzi klasa IsolatedStorageSetting. Czytaj dalej