luq techblog

o tworzeniu słów kilka…

SQL, JSON i Ajax… czyli część 3. tworzenia mapy pod grę 7 lipca 2010

Filed under: Ajax,GameDev,GameMap,JS,Programowanie,SQL — Łukasz @ 17:55
Tags: , ,

Dość długo zwlekałem z tym wpisem… szczerze mówiąc, bardzo dużo czasu i sił kosztuje mnie opisywanie mojego, hm… projektu, bo tak to można nazwać. Tak naprawdę więcej czasu spędziłem nad pisaniem poprzednich dwóch wpisów niż nad pisaniem kodu do nich. Sam nie jestem fanem tutoriali programistycznych i od dziś nie będę pisał na ten temat rozwodząc się nad moją każdą decyzją podjętą w czas projektowania tego wszystkiego. Będę zwracał uwagę na elementy ciekawe pomijając te błahe.

 

Okej, ostatnio zakończyliśmy na GUI pod edytor map, dziś dopiszemy trochę kodu aby nasz edytor zapisywać dane dt. mapy do bazy a także odczytywał stworzoną mapę po przeładowaniu strony tak, aby można było kontynuować prace nad całym naszym światem. Dodatkowo stworzymy kod który umożliwi nam w grze przesuwanie mapy. Szkoda czasu czas zaczynać.

 
(more…)

 

Catch the block 22 kwietnia 2010

Filed under: GameDev,JS,Web — Łukasz @ 23:00
Tags: , , ,

Catch the block
Dziś chciałem przedstawić napisaną przeze mnie grę, właściwie mini gierkę, która została specjalnie stworzona na targi edukacyjne szkół z regionu tarnogórskiego w celu oczywiście promocji mojej szkoły (oczywiście jakże pięknej i wspaniałej!). To od razu rzucę linkiem.

 

GRAJ
Sterowanie: mysz + klawisze [strzałka lewo], [strzałka prawo]
(dla Chrome, [a], [d])

 

Na początku przeważnie pada pytanie „To jest Flash?”, oczywiście klikając prawym klawiszem myszy na tym ustrojstwie nie pojawia się kontekstowe menu Flash`a, a więc odpowiedź brzmi „Nie, to JavaScript ;)”. W tym wpisie nie znajdzie się miejsce na opis techniczny, możliwe że zrobię to później a może nigdy. Chciałem się tutaj skupić na zasadach gry i informacjach przydatnych dla chcących sobie złapać klocka.

 

W czym grać

Jeśli masz i używasz na codzień IE, to raczej sobie nie pograsz. Znaczy, teoretycznie gra chodzi i działa, ale z powodu tego, że IE jest strasznie wolny, wolno interpretuje JavaScript`a, a do wersji 7 (bo taką mam u siebie zainstalowaną) nie zaimpletowano obsługi właściwości rodem z CSS 3 (opacity [zamiast tego korzysta się z filter] oraz border-radius) to odradzam zupełnie granie w grę pod IE. Polecam Chroma, bo najszybciej interpretuje JavaScripta, w Firefox`ie działa równie dobrze, pod Operą słyszałem, że też, chodź tego nie testowałem. Grałem też pod Safari i jest całkiem okej.

Jak grać

Bardzo zdziwiło mnie, że duża cześć osób którym nie tłumaczyłem zasad in live ma problem z pojęciem zasad które są tak naprawdę proste. Głównym celem gry jest zebranie jak największej ilości punktów. Nie oszukuj się, zawszę kiedyś przegrasz ;) Punkty zdobywamy zbierając klocki aktualnego koloru, czyli tego widocznego w kółku u dołu ekrany gry. Nie trzeba klikać! Wystarczy najechać. Za każdy zebrany w ten sposób klocek dostajemy 3 pkt. To mało, i jeśli chcemy zajść daleko trzeba się skupić na combosach. W prawym dolnym rogu widzimy kolory klocków z kolejności jakiej mamy je zebrać (wykluczając pierwszy level, oczywiście z powodów logicznych). Dla przykładu, widzimy (od lewej) zielony, czerwony. Jeśli zbierzemy zielony a następnie czerwony klocek to poza 6 pkt. dostaniemy dodatkowo 20pkt. Punkty za combo są liczone wg. wzoru:

ilość_klocków_w_combo * 10

Oczywiście aktualny kolor zmieniamy klawiszami strzałek (w Chromie jest to [a], [d]). Pamiętaj, że jeśli aktualny kolor to np. czerwony, a Ty zbierzesz niebieski to tracisz życie. Grę przegrywasz jeśli stracisz wszystkie życia lub skończy Ci się czas, do którego z każdym przejściem do nowego levela zostają dodane kolejne cenne sekundy (zdefiniowane różnie od każdego poziomu). To chyba tyle.

 

Zdefiniowanych jest 8 poziomów. Nigdy nie udało mi się przejść do ostatniego. Mój najlepszy wynik oscyluje gdzieś między 1200 a 1300, dokładnie niestety nie pamiętam. Jeśli ktoś miał podobny lub większy piszcie w komentarzach :)

 

Ajax md5() 28 marca 2010

Filed under: Ajax,JS,Security,Web — Łukasz @ 11:19
Tags: , , , , ,

Dziś coś na temat bezpieczeństwa. Pomysł na ten wpis zrodził się dziś rano, gdy wchodząc na forum.php.pl zobaczyłem temat w którym, ktoś potrzebował użyć PHP`owej funkcji pack() po stronie klienta. W odpowiedzi rzucono mu linka http://phpjs.org/functions/pack:880. Szczerze powiedziawszy spotkałem się z tą stroną pierwszy raz i się miło zaskoczyłem. Strona phpjs.org to próba przeportowania funkcji występujących w PHP na język JS. Aktualnie progres tego zadania liczony jest na 81.7% czyli sporo… Dobra ale ja nie o tym chciałem, może kiedy indziej napiszę coś o phpjs… Jakiś czas temu widziałem także, na czyimś blogu, pomysł na liczenie md5 po stronie klienta (szkoda, że nie mam linka a jednak znalazłem http://necro.nomicon.pl/2009/01/24/making-of-javascript-botnet). Ogólnie chodzi o to, aby potencjalny user czytając wpis na blogu, liczył hashe md5() z kolejnych niewyliczonych stringów, następnie wynik zapisywał z powrotem do bazy,wszystko działało oczywiście w oparciu o technologie Ajax, bez świadomości czytającego co jego komputer właśnie robi. W ten sposób obciążamy liczeniem maszyny osób serfujących po internacie, natomiast nam pozostaje jedynie magazynowanie wyników tych operacji. Ten wpis jest próbą skonstruowania czegoś podobnego. Czy się udało? Co z tego wyszło? Czytaj dalej :)

 
(more…)