18 maja 2011

Przykład obsługi zdarzeń

Do wyjaśnienia na czym polega obsługa zdarzeń posłuży mi niniejszy przykład. Program charakteryzuje 2 części. Pierwsza to ta, która odpowiada za narysowanie 5 ilustracji. Natomiast druga zajmuje się wyświetlaniem współrzędnych klikniętego obrazku.

Kliknij, aby powiększyć.

Kod:
http://wklej.org/id/531774/

Animacja

Spora liczba początkujących programistów C++ stawiając swe pierwsze kroczki w dziedzinie gier 2D używa biblioteki Allegro. Co sprawia, że wykonanie animacji sprowadza się do wczytania kilku obrazków, które będą co jakiś krótki czas zmieniane. Tak jak w filmach.



Od strony kodu w C++ sprawa nie wygląda najlepiej, bo to programista musi zbudować, bądź zdobyć klasę animacji, a następnie podczas tworzenia gry, musi żywcem w kodzie opisywać parametry na temat tworzonej animacji. Oczywiście da się zrobić w ten sposób grę, ale to niewątpliwie jest uciążliwe. 

Z resztą spójrz na ten artykuł: http://cpp0x.pl/kursy/Kurs-Allegro-C++/Animacja/71

W przypadku aplikacji Flash, sprawa ma się zdecydowanie lepiej. Otóż animacje tworzy się w specjalnych edytorach, a wynik pracy zapisuje się jako plik SWF, który sam w sobie dysponuje wszystkimi informacjami na temat utworzonej animacji. Tego typu rozwiązanie ma w sobie kilka zalet:
  • Kod jest lepszy, bo nie zawiera zbędnych informacji
  • Łatwiej i lepiej tworzy się animacje w edytorze Flasha
  • Animacje możesz modyfikować, bez modyfikowania kodu
Aby tworzyć animacje jak wspomniałem potrzebny jest edytor Flasha. Na rynku jest wiele produktów oczywiście na ich czele są produkty Adobe, jednak ich cena może być szokująca :-) W chwili obecnej cena ta za Adobe Flash Pro CS5 wynosi ponad 3 tysiące złotych. Dlatego początkującym polecałbym korzystanie z wersji Trial bądź z innych programów, które są darmowe.

Tworzenie animacji wymaga pewnej wprawy, ja sam jestem początkującym i w chwili obecnej co najwyżej mogę się poszczycić latającą chmurką. Nie będę tutaj rozpisywał się w jaki sposób tworzyć animacje, bo to najlepiej to zobaczyć na youtube.

Aby móc użyć gotową animację w AS3 wystarczy użyć kodu z wątku Wyświetlenie Obrazu i zamiast nazwy grafiki podać nazwę animacji.

Wyświetlanie obrazu

Użyłem kodu ze strony społeczności adobe i efekt pracy wygląda następująco:



Nie sądziłem, że w tego rodzaju zadaniu, niemal wszystko wykona klasa Loader. Zauważ, że nie stosuje w kodzie żadnej klasy typu Image, a mimo to Loader jest wstanie wczytać wiele różnych plików graficznych i także je wyświetlić.

Uwagi:
Jeśli używasz IDE - FlashDevelop. To grafikę należy osadzić w katalogu bin twego projektu. W przeciwnym razie podczas wykonywania aplikacji zostanie zgłoszony błąd.

17 maja 2011

Tutoriale społeczności Adobe

Przypadek! Trafiłem na stronę, która skupia w sobie artykuły społeczności Adobe. Tekst jest ciekawy i w dodatku po polsku. Zalecam zajrzeć, szczególnie początkującym!









Link:
http://help.adobe.com/pl_PL/ActionScript/3.0_ProgrammingAS3/

Definiowanie własnego buttona

Utworzyłem przykład ukazujący w jaki sposób można zdefiniować własny button we flashu. Jest to trochę karkołomna operacja, ale pozwala utworzyć button wg własnego uznania, a przecież to może być owocne w przypadku budowania menu gry. Póki co, button działa, ale jego oprawa graficzna pozostawia po sobie wiele do życzenia.

Kod:

Pytanie:
Czy we Fleksie występują standardowe buttony?

Książka: ActionScript3.0 Game Programming University

Udało mi się pozyskać ciekawą czytankę, mowa o ActionScript3.0 Game Programming University  - książce, która traktuje o budowaniu gier w AS3. W sieci publikacja jest wyjątkowo łatwa do nabycia.

Do zrobienia:
Wykonaj recenzję tej książki.

Jak efektywnie uczyć się ActionScript3?

Bardzo negatywnie zaskoczyła mnie mała ilość materiałów na temat nauki programowania w ActionScript3.0 (AS3 ku zwięzłości). Oczywiście występuje kilka książek, ba nawet w języku polskim. Rzecz w tym, że tego rodzaju książki trochę pomruczą o AS3, a potem głównie koncentrują się na obrazowaniu możliwości Flexa.

Tego mruczenia jest zdecydowanie za mało dla czytelnika, który nigdy nie programował. Dlatego nowicjuszom radziłbym wstrzymać operację 'nauka AS3', do czasu nim wyrobią sobie solidne podstawy w innym języku programowania.

Warto przyjrzeć się bardziej popularnym językom takim jak C++/C#/Java/Python, by na ich bazie zrozumieć na czym polega programowanie zorientowane obiektowo ( w skrócie OOP). Jest to bardzo ważna technika, szczególnie dla programisty gier, ponieważ pozwala postrzegać kod jako zbiór powiązanych obiektów, a to jest bardzo pomocne podczas budowania świata gry. Zamiast myśleć o sekwencji rozkazów myślisz o obiektach takich jak potwory, bronie, pieniądze itp.

Jeśli wiesz na czym polega programowanie, a samo OOP nie stanowi dla Ciebie problemu to powinieneś po prostu pobieżnie poznać gramatykę języka. To jest proste i przyjemne! Dziś skoczyłem do empiku i przejrzałem książkę ActionScript 3.0. Biblia, i po godzinie kartkowania wyłapałem różnice jakich do tej pory w żadnym języku nie spotkałem. Nie wgłębiałem się w tekst, bo większość ludzi pisze o tym samym. Po prostu analizowałem kod i mniej więcej rozumiałem jak należy pisać kod w AS3. Mimo, że obecnie nie jestem guru tego języka, sądzę, że właśnie nadeszła pora, abym poznał Flex.

Ogłoszenie:
OOP jest łatwiejsze niż sobie wyobrażasz. Po prostu wiele publikacji niewłaściwie podchodzi do tego tematu. Specjalnie dla osób, które chcą poznać OOP utworzę na blogu serię artykułów na temat OOP w AS3.

Do zrobienia:
Zyskując coraz większe doświadczenie w AS3. Opisz te różnice jakie trudno spotkać w innych językach programowania.

Jak zacząć naukę ActionScript3.0?

Bardzo negatywnie zaskoczyła mała ilość materiałów na temat nauki programowania w ActionScript3.0 (AS3 ku zwięzłości). Oczywiście występuje kilka książek, ba nawet w języku polskim. Rzecz w tym, że tego rodzaju książki trochę pomruczą o AS3, a potem głównie koncentrują się na obrazowaniu możliwości flexa.

Tego mruczenia jest zdecydowanie za mało dla czytelnika, który nigdy nie programował. Dlatego nowicjuszom radziłbym wstrzymać operację 'nauka AS3', do czasu nim wyrobią sobie podstawy.

Warto przyjrzeć się takim językom jak C++/C#/Java/Python, by na ich bazie zrozumieć na czym polega programowanie zorientowane obiektowo. Jest to bardzo ważna technika, szczególnie dla programisty gier, ponieważ pozwala postrzegać kod jak zbiór powiązanych obiektów, a to jest bardzo pomocne podczas budowania świata gry. Zamiast myśleć o sekwencji rozkazów myślisz o obiektach takich jak potwory, bronie,  pieniądze itp.

Jeśli wiesz na czym polega programowanie, a samo programowanie zorientowane obiektowo nie stanowi dla Ciebie problemu to powinieneś po prostu pobieżnie przyjrzeć się składni języka, bo ta właściwie jest bardzo podobna do gramatyki Javy.

Instalacja narzędzi

Aby móc zacząć programować musisz zainstalować najnowsza wersja Flex SDK (Software Development Kit). Jest to zbiór oprogramowania, który umożliwia programowanie w języku ActionScript3.0. W tym właśnie języku tworzy się gry flash.

Oczywiście kod możesz tworzyć w notatniku, a narzędzia obsługiwać z poziomu wiersza poleceń. Jednak tego typu rozwiązanie jest bardzo uciążliwe. Dlatego warto zainstalować IDE. Nie korzystałem ze wszystkich produktów, ale dużą popularnością cieszy się program FlashDevelop.

Poniżej przedstawiam, wygląd tego IDE.

Kliknij, aby powiększyć.

Poza IDE warto zainstalować program, który umożliwia tworzenia animacji w formacie SWF. Więcej szczegółów podaje w poście na temat animacji.

Zastrzeżenia:
Obecny post tyczy się głównie Windows 7, 64bit.

Do zrobienia:
Zainstaluj Flex SDK i IDE w systemie Linux.

O autorze i o blogu

Blog powstał z myślą dzielenia się użytecznymi informacjami na temat programowania gier we flashu. Obecnie jak widzisz, jest tu próżnia. Lecz z czasem ta sytuacja ulegnie poprawie. W przyszłości znajdziesz tu całkiem sporo samouczków mego autorstwa, a także odnośników do ciekawych witryn.

Zaznaczę, że na programowaniu znam się nie od dziś, ale samo tworzenie gier to dla mnie nowy wymiar. Z tego powodu na początku powstanie wiele wątków, które będą od zera opisywać w jaki sposób zacząć. Tekst będzie możliwie prosty, aby ułatwić naukę możliwie wielu osobom.

Zazwyczaj mam rację, ale nie zawsze. Dlatego od widowni ekspertów oczekuje przytomności i okrzyków w postaci "ten kod to amatorka, zrób to lepiej np. tak ...". Tego typu uwag nie będę ignorował, wręcz przeciwnie docenie i podziekuje za pomoc w ulepszaniu materiałów.

Życzcie mi powodzenia :)