Paintball Arena. Prototyp – poruszanie gracza. #dajsiepoznac

Siemanko

Dziś poruszamy trochę tą czerwoną kropką, tffu, graczem 🙂

Klasa MonoBehaviour

MonoBehaviour to klasa, która w Unity jest bazową klasą dla obiektów gry i zawiera wiele metod, które są wywoływane przez silnik Unity w trakcie wykonywanie programu. Jedną z nich jest metoda Update, która jest wywoływana przy każdej klatce gry.

Komponent RigidBody2d

Jest to komponent, który po dodaniu go do obiektu gry umożliwia np. poruszanie nim. My oczywiście chcemy się poruszać w każdym kierunku za pomocą strzałek i ew. klawiszami WSAD. W tym celu zaimplementowałem metodę Update w skrypcie dla gracza, w której zmieniam „velocity” komponentu RigidBody2d w opowiedzi na naciśnięte przyciski. Kod jest bardzo krótki.

private float speed = 100;
protected void Update()
{
	var vector = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
	vector *= Time.deltaTime;
	vector *= speed;

	Rigid.velocity = vector;
}

Dzięki temu zabiegowi obiektem możemy poruszać.

www-gifcreator-me_iw9dbt

Podsumowanie

W następnym wpisie kolizja z balonem.

Pjona!

Reklamy

Paintball Arena. Prototyp – scena i obiekty gry. #dajsiepoznac

Siemanko.

W dzisiejszym odcinku scena i obiekty gry. W repo jest branch „Prototype” gdzie będę wrzucał wszystkie próbne kody itp. Nie będzie to ani ładne, ani zgrabne ale od tego jest prototyp. Jak ogarnę wszystkie funkcjonalności to wtedy utworzę nowy projekt, który będę już pisał „produkcyjnie” i kod będzie lądował na masterze.

Scena

Jest to wszystko co widzi gracz. Tło, obiekty ruchome jak i nieruchome to wszystko jest sceną.

Obiekty gry

Wszystko co dodamy do sceny będzie to „game object”. Każdy game object może posiadać wiele komponentów, z których najwazniejszy to script, który nada życiu obiektowi.

scene

go

Game object i jego kilka komponentów

Demo

A tak wyglada na tę chwilę gra. Przepiękna nieprawdaż? 🙂

gra

Aaach gdyby na wszystkich polach w PL była taka zielona trawka 😉

Na scenie z zielonym tłem jest 8 obiektów gry (game objects) z czego 7 to przeszkody, a jeden (czerwona kropka) to zawodnik.

Podsumowanie

W następnym wpisie wprawimy tę czerwoną kropkę w ruch! 🙂

Pjona!

Start DSP 2017. Krótki opis projektu Paintball Arena.

Siemanko.

Dziś startuje kolejna (moja druga) edycja konkursu „Daj się poznać” organizowanego przez Macieja Aniserowicza. W poprzedniej edycji za cel postawiłem  sobie napisanie aplikacji mobilnej (android) oraz serwerowej udostępniającej dla niej WebApi. Wiele się nauczyłem i ostatnio nawet to zajebiście zaprocentowało, ale o tym kiedy indziej. Dziś kilka zdań na temat tego co chcę zrobić w tym roku.

Co?

Paintball Arena. Gierka 2D, w której będzie można pograć w paintball.

Jak?

Unity.

Po co?

Dla jaj! 😉

Tak na serio to zawsze mnie intrygowało jak się robi gry. To jest na pewno inny sposób myślenia i programowania więc mam nadzieję poszerzyć horyzonty. A dlaczego paintball? Ponieważ jest to moja pasja na równi z kodowaniem – gram w drużynie Grim Reapers.

W kolejnych postach będę przybliżał jak będzie wyglądać scena, obiekty, sterowanie i w ogóle o co będzie kaman.

Pjona!

DSP 2016 – Grande Finale! Nieco spóźnione podsumowanie uczestnictwa w konkursie.

Siemanko.

Pierwszego czerwca zakończył się konkurs Maćka Aniserowicza „Daj się poznać 2016”. Do uczestnictwa w tym przedsięwzięciu powstało/reaktywowało się/dołączyło ok 300 blogów. Ten blog należy do grona nowo powstałych i zarazem tych, które dotrwały do końca regulaminowego czasu trwania konkursu. Także jestem w „finałowej” 70-tce. Choć o zakwalifikowaniu się do finału nie decydowała wartość merytoryczna postów, ani efekt końcowy rozwijanego projektu to systematyczna praca przez 10 tygodni okazała się nie lada wyzwaniem (co widać po stosunku ilości blogów na starcie do blogów na mecie). Ja choć nie ukończyłem mojego projektu konkursowego to i tak jestem zadowolony ze stanu w jakim się teraz znajduje. Przed rozpoczęciem nad nim prac nie zakładałem, że uda mi się aż tyle zrobić przez kilkanaście godzin tygodniowo (przy czym mobilna deweloperka to była dla mnie zupełna nowość).

Blog

Do tej pory wordpress naliczył 1088 odsłon. Szablon mojego bloga jest tak skonstruowany, że wchodząc na stronę główną można przeczytać wszystkie posty tylko scroll’ując w dół, bez wklikiwania się w treści. Tym sobie tłumaczą taką małą ilość zarejestrowanych wejść 😉 Pod postami znalazło się łącznie 18 komentarzy (wraz z moimi odpowiedziami) dlatego mam namacalny dowód, że nie tylko roboty do indeksowania stron odwiedzały tego bloga 😉

2

Gościłem nawet zagraniczne osobistości (podejrzewam, że z USA byli to ludzie z centrali Google ;))

4

Kod

Trzy projekty:

  • Android Studio (przed przejściem na Xamarin’a)
  • AspNet Core 1.0
  • Xamarin Android

5

Aplikacja

Zrealizowane moduły:

  • rejestracja/logowanie (formularzowe i przez facebook’a)
  • autentykacja za pomoca tokena JWT
  • ustalanie lokalizacji
  • pobieranie i wyświetlanie listy ogłoszeń
  • wyświetlanie szczegółów ogłoszenia
  • tworzenie nowego ogłoszenia (z wykorzystaniem kamery)
  • komunikacja z serwerem przez SignalR (początki czatu)

Screeny:

WP_20160313_17_14_17_ProIMAG0037

13177393_1011632665583795_5778124407927892321_nIMAG0041

IMAG0047IMAG0061

2

IMAG0082

Głosy

Do 7 czerwca wszyscy uczestnicy mogą oddawać głosy na trzy wg. nich najfajniesze blogi. Po tym czasie 15 blogów z największą ilością głosów przechodzi do wielkiego finału gdzie głosować będą mogli wszyscy. Także nie bądź zaskoczony/a jeśli zaczniesz dostawać spam z prośbą o głosy od swoich znajomych 😉 Przyznam szczerze, że nie miałem czasu na to aby śledzić inne blogi jednak zagłosowałem na te, na które od czasu do czasu pozwoliłem sobie zajrzeć i mi przypasowały 😉

Programistka – projekt aplikacji na androida także bliski mi temat. Wydaje mi się, że zaglądaliśmy do siebie

Na miękko – temat projektu bliski mojemu i podobne poczucie humoru

Itcraftsman – już przed konkursem miałem go w „polubionych”. Podoba mi się za profesjonalizm.

Do nich poleciały moje głosy i życzę im powodzenia!

Podsumowanie

To były uczciwie przepracowane prawie 3 miesiące. Gratuluję każdemu kto dotrwał do końca,  a także tym, którzy z jakiegoś powodu musieli przerwać uczestnictwo w konkursie. Dziękuję mojej kochanej narzeczonej za wyrozumiałość i uśmiech przez zęby kiedy każdy wolny weekend spędzałem przy komputerze 😉

Pjona!

Projekt Asp.Net Core po wielu godzinach przeniesiony do wersji RC2.

Siemanko

W sobotę napisałem, że zaczynam atakować mój projekt back’endowy w celu przeniesienia go na .NET CLI i wyswobodzenia go od skasowanego DNX’a – czyli przejście na oficjalną wersję RC2 frameworka. Nie trwało to kilka dni jakby wskazywał na to kalendarz, ale krócej bo właściwie znalazłem czas aby przysiąść do tego tylko trzy razy. Pierwszy raz był we wspomnianą sobotę i to posiedzenie zakończyło się moją klęską, i niezłym wkurwieniem ocierającym się o rezygnację z programowania i wzięcia się za grę w brydża 😉 Drugi raz był wczoraj wieczorem gdzie przyjąłem nieco inną taktykę, która także okazała się nieskuteczna jednak doprowadziła do wyklarowania się decyzji o utworzeniu nowej solucji wraz z nowymi projektami i przenoszeniu do nich klas z istniejącego projektu. Tym się właśnie zająłem dziś i mogę powiedzieć, że się udało. Projekt się kompiluje oraz uruchamia.

1

O tym co się zmieniło oraz najważniejsze – jak to przeniosłem – napisze po weekendzie. Teraz mogę Ci powiedzieć tylko tyle, że olej sobie dokumentację migracji przygotowaną przez ekipę Asp.Net Core. Opisuje ona różnice w plikach konfiguracyjnych i takie tam pierdololo, ale nie mówi jak przenieść istniejący projekt ASP.NET Core RC1 do ASP.NET Core RC2. Jak będziesz grzeczny to ja Ci napiszę 😉

Pjona!

Pierwsze podejście do upgrade’u projektu Asp.Net Core – from DNX to .NET Core Cli

Siemanko

Piękny, słoneczny dzień dziś (przynajmniej u mnie) dlatego postanowiłem sobie go nieco zjebać i spróbuje przenieść aplikacje serwerową do najnowszej wersji frameworka czyli Asp.Net Core 1.0 Rc2. Niby kolejny release candidate, ale kompletnie inny pod spodem. Cóż, ewolucja 🙂 Dam znać niedługo czy jest w ogóle możliwa migracja z Rc1 do Rc2 bez nowych siwych włosów i czy w ogóle się da. Microsoft’owe ludki twierdzą, że się da i nawet odziwo przygotowali do tego jakąś dokumentację. Wszystkiego możesz się dowiedzieć tutaj. Życz mi powodzenia 🙂

Pjona!

Widok do prowadzenia rozmowy w czacie aplikacji Mobile Second Hand

Siemanko.

W niedzielę poszły pierwsze commit’y do repo związane z czatem, a dziś lecą kolejne z m.in. z nowym activity do prowadzenia rozmów real time (oczywiście  w deweloperskim wyglądzie jak to przystało na takie totalne bezguście jak ja ;))

IMAG0082

Bubble Chat

To wyrażenie przewija się w internetach i oczywiście wśród użytkowników fejsbukowego messenger’a. Wiadomości wyświetlane w formie bąbelków, dymków itp. jak zwał tak zwał. Moja aplikacja nie może być gorsza i musi nadążać za trendami 🙂 Sama implementacja jest bardzo prosta. Każda z wiadomości to osobny row view zamknięty w relative layout, a ten z kolei odpowiednio ostylowany w momencie bind’owania view holder’a na podstawie informacji czy autorem wiadomości jest użytkownik. Informacja tą zawarłem w modelu wiadomości przekazywanego do list adaptera.

Co nowego na serwerze

W momencie łączenia się usera z serwerem SignalR zapisuję sobie do cache’a (serwera) jego id wraz z id połączenia. W ten sposób będę łatwo mógł sprawdzić, który user jest online, a także pobrać jego id połączenia w przypadku potrzeby wysłania do niego wiadomości. Oczywiście w przypadku rozłączenia się usera aktualizuję listę użytkowników online w cache’u. Dlaczego cache? Bo szybki. Co będzie jak trzeba będzie zrestartować aplikację na serwerze i dane z cache’a znikną? Nic nie będzie bo tym samym użytkownicy zostaną rozłączeni i po restarcie będą się ponownie łączyli więc cache znowu się zapełni 🙂

Podsumowanie

Podsumowując to wiecie, że to już mój 11sty tydzień aktywnego rozwijania projektu i blogowania w konkursie #dajsiepoznac? Tym samym spełniłem już warunki konkursu, aby być branym pod uwagę przy wynikach choć te nie są najważniejsze bo największą frajdę podczas mojego uczestnictwa w konkursie sprawia mi nauka nowych rzeczy. Jestem zadowolony, że udaje mi się znaleźć czas, aby troszkę pokodować oraz popisać głupot w internetach, dlatego nie zamierzam na tym poście poprzestać i będę męczył Was dalej! 😉

Pjona!