Pisanie gier w języku JavaScript – Game Loop

Ok, pisałem, że niedługo w przedstawię pełny kod pierwszej gry. Niestety nie dziś. Postanowiłem najpierw opisać bardzo ważny aspekt programowania gier, nie tylko w języku JavaScript – Game Loop.

petla
Czytaj dalej Pisanie gier w języku JavaScript – Game Loop

Wywoływanie właściwości obiektu kluczem znajdującym się w tablicy

Dziś krótka notka o tym, co ‚odkryłem’ dziś w pracy. Musiałem odnaleźć sposób na Wywoływanie właściwości obiektu kluczem znajdującym się w tablicy. O co chodzi? Już tłumacze. Czytaj dalej Wywoływanie właściwości obiektu kluczem znajdującym się w tablicy

Wariacja o space invaders w JavaScripcie cz. 1

space invaders w Javascripcie

Nie będę pokazywał jak napisać ten klasyk gier komputerowych, ale postaram się zaprezentować coś podobnego do space invaders w JavaScripcie 🙂 Często spotykam się z opinią, że aby tworzyć gry, należy znać bardzo zaawansowane techniki programowania lub skomplikowane biblioteki / frameworki. Do tego trzeba mieć zespół grafików, dźwiękowców i cholera wie co jeszcze.

Otóż nie. Chcę udowodnić wam, że można stworzyć grę, bez tego wszystkiego. Wystarczy mieć fajny pomysł i bardzo prostymi technikami programistycznymi możemy sami napisać ciekawą grę. Nie będzie to może następca wiedźmina, ale uwierzcie mi, wciąga (na jakieś 15 minut :P) Czytaj dalej Wariacja o space invaders w JavaScripcie cz. 1

Przekazywanie funkcjom typów prostych i referencyjnych

JavaScript przekazywanie wartości funkcjom
We wcześniejszym poście opisałem jak działa mechanizm zmiennych typu prostego i referencyjnego. Podkreśliłem na co należy uważać i czego trzeba unikać. W kolejnym poście opisałem jak radzić sobie z kopiowaniem tablic jeśli potrzebujemy tak zwanej „głębokiej kopii”.

Dziś napiszę o kolejnym ważnym aspekcie języka JavaScript, mającym związek z typami zmiennych. Jest to kolejna rzecz spędzająca sen z powiek początkującym programistom tego języka. Chodzi o przekazywanie typów referencyjnych i prosty jako argumenty funkcji.
Czytaj dalej Przekazywanie funkcjom typów prostych i referencyjnych

Najdłuższy uporządkowany alfabetycznie ciąg znaków

Ostatnio w pracy, kolega pokazał mi problem programistyczny, który próbował rozwiązać w Pythonie. Miał napisać algorytm, który znajduje najdłuższy ciąg znaków uporządkowanych alfabetycznie w łańcuchu znaków. Czyli na przykład, z łańcucha „abcaxydefkkab” powinno zostać zwrócone „defkk”.

Postanowiłem spróbować rozwiązać ten problem w JavaScripcie.
Czytaj dalej Najdłuższy uporządkowany alfabetycznie ciąg znaków

Głębokie kopie tablic

Dziś krótki wpis. Uzupełnienie poprzedniego posta, opisującego podstawowe różnice pomiędzy typami prostymi a referencyjnymi.

Wyjaśniłem tam dlaczego nie możemy skopiować tablicy przy użyciu operatora ‚=’. Taka operacja przypisuje do zmiennej po lewej stronie operatora referencje do której prowadzi zmienna po prawej stronie. Nie kopiuje tablicy tak jak w przypadku zmiennych typu prostego, jak ‚number’ czy ‚boolean’.

Zamiast tego otrzymamy tak zwaną „płytką kopię” (shallow copy). Wszelkie zmiany, które program wykona w użyciu nowej płytkiej kopii, będą też odzwierciedlone w oryginale. Obie zmienne tak naprawdę wskazują na ten sam obiekt.

Dzieje się tak dlatego, że wszystkie obiekty w JavaScripcie (tablica też jest obiektem) są typami referencyjnymi. Jak się nad tym zastanowimy, ma to sens, ponieważ zamiast kopiować obiekt, lepiej jest stworzyć jego nową instancję za pomoc operatora ‚new’.

Z doświadczenia wiem jednak, że czasem przydaje się zrobić ‚głęboką kopię’ istniejącej już tablicy z całą jej zawartością. Skoro nie mamy takiej możliwości, to możemy stworzyć ją sobie sami!
Czytaj dalej Głębokie kopie tablic

Typy proste i referencyjne w JavaScripcie

W tym wpisie przedstawie co nieco o typach danych w JSie. Większość osób zaczynających przygodę z JavaScriptem kiedy słyszy o typach danych myśli o typach „number”, „boolean” itp. Mi chodzi o coś zupełnie innego. Czytaj dalej Typy proste i referencyjne w JavaScripcie

Trudne początki

Tak jak pisałem w poprzednim poście, nie będę starał się nikogo uczyć podstaw JavaScriptu, jednak chcę przedstawić swoje doświadczenia. Wciąż dobrze pamiętam jak wyglądały moje początki programowania. Nie było łatwo. To, że w internecie jest ogrom informacji, często sprzecznych, wcale nie pomagało. Zaczynałem od złych książek lub prostych pseudo tutoriali na youtube, przez co mój start był opóźniony i parę razy prawie się poddałem.

Dlatego na początku chciałbym napisać parę słów o tym jak zacząć naukę javascriptu tak aby była ona najefektywniejsza. Bogatszy o swoje doświadczenia, wiem w jakich źródłach szukać informacji a czego powinno się unikać.  Czytaj dalej Trudne początki