Podsumowanie
Wstęp
W tym materiale stworzysz interaktywną aplikację od podstaw. Zaplanujesz wygląd, działanie oraz pozyskasz odpowiednie zasoby potrzebne do zrealizowania tej aplikacji. Będzie to przewodnik multimedialny po największych miastach w Polsce napisany w języku Processing. Ważne jest, aby znać wady oraz zalety dostępnych języków programowania, pozwala to umiejętnie dobierać odpowiedni język programowania do pisanej przez nas aplikacji. W tym przypadku powinno głównie zależeć nam na obsłudze zdarzeń generowanych przez użytkownika, możliwości pracy z tekstem, filmami, dźwiękiem oraz ilustracjami. Do realizacji naszej aplikacji wybierzemy zatem język Processing. Dodatkowym atutem tego języka jest nieskomplikowana składnia. Poniżej realizowany jest przykładowy przewodnik, oznacza to, że na każdym etapie możesz modyfikować, dodawać lub usuwać poszczególne elementy, w taki sposób, aby końcowy efekt był bliski twojej wizji.
Zanim zostanie napisana pierwsza linijka kodu przewodnika multimedialnego, należy najpierw odpowiedzieć na pytania:
Jaka jest ogólna koncepcja?
Przewodnik multimedialny zdecydowanie powinien zawierać tematyczne obrazy lub video. Dodatkowo warto pomyśleć nad ścieżką dźwiękową. Kolorystycznie przewodnik może być związany z biało‑czerwoną flagą Polski. Wykorzystanie mapy Polski do nawigacji może również okazać się przydatne. Należy pamiętać również o grafikach na poszczególne ikony.
Za pomocą znanych narzędzi informatycznych (edytory grafiki, video, dźwięku) oraz zasobów internetu przygotuj własne materiały (ikony, grafiki, teksty) do wykonania przewodnika lub skorzystaj z tych umieszczonych w załączniku.
Poniżej znajdują się gotowe pliki potrzebne do wykonania przewodnika. Zawartość umieść w folderze zawierającym kod przewodnika multimedialnego.
Jakich narzędzi będziemy potrzebować?
Mając ogólny zarys, można zastanowić się nad kolejnym pytaniem, otóż trzeba będzie wykorzystać zewnętrzne biblioteki, znajdujące się na stronie środowiska http://processing.org/reference/libraries/ takie jak:

Informacje o tym jak zainstalować zewnętrzne biblioteki znajdziesz w materiale z podstawami języka Processing.
Zainstaluj niezbędne biblioteki.
Po zainstalowaniu dwóch powyższych bibliotek, na samym początku kodu należy dodać:
Jak ma działać?
Teraz trzeba pomyśleć nad działaniem przewodnika multimedialnego i zacząć od ekranu startowego, który wyświetli się raz podczas uruchomienia programu, a następnie przejść do ekranu głównego. Dobrym pomysłem może być wybór miasta poprzez wskazanie na mapie. Najważniejszym elementem będzie właśnie ekran główny, gdzie będziemy wskazywać miasto. Należy jasno przedstawić co zostało wskazane, na poniższej grafice, po najechaniu myszką na ikonę miasta pojawia się napis Warszawa. Przewodnik multimedialny musi mieć ekran, na którym zostaną przedstawione informacje o wybranym mieście. Trzeba zapewnić możliwość swobodnego przemieszczania się po ekranach. Podczas wyświetlania miasta, ikona powrotu powinna być widoczna. Należy pamiętać również o dodaniu opcji wyciszenia muzyki.

Zmienne
Najpierw powinno się zadeklarować zmienne, będziemy potrzebować zmiennych, które przechowują ikony PImage, video dla każdego miasta typu Movie. Do ścieżki dźwiękowej potrzeba dwóch zmiennych typu Minim oraz AudioPlayer. Na koniec potrzeba kilku zmiennych typu int oraz String, aby zsynchronizować działanie programu.
Funkcja setup()
Mając gotowe zmienne, należy przypisać do nich odpowiednie wartości. Służy do tego funkcja setup(), która jest wywoływana tylko raz przy uruchamianiu programu, ustalając wszystkie niezbędne warunki początkowe do działania aplikacji. Rozmiar okna ustawiamy funkcją size(x, y), gdzie x – szerokość okna, y – wysokość okna. Obrazki ładowane będą funkcją loadImage(), gdzie jako parametr podajemy adres URL do obrazka w folderze projektu. Dodając ścieżkę dźwiękową należy utworzyć nową instancję Minim oraz wykorzystać ją do załadowania pliku z rozszerzeniem mp3 za pomocą loadFile(), który również przyjmuje adres URL. Następnie uruchamiamy wczytany plik poleceniem play(). Kolejne linijki to wczytywanie video, w tym celu tworzymy nowy obiekt Movie oraz podajemy adres URL video. Polecenie loop() sprawia, że video uruchomi się ponownie po zakończeniu.
Dodatkowo należy umieścić w kodzie funkcję movieEvent(), sprawia ona że kolejna klatka filmu zostanie wychwycona za pomocą read().
Funkcja draw()
Funkcja draw() będzie wykonywana ciągle, zaraz po wykonaniu instrukcji setup(), do czasu kiedy zostanie przerwane wykonywanie programu lub będzie uruchomiona inna instrukcja. W przypadku projektowanego przewodnika należy utworzyć różne funkcje rysujące poszczególne ekrany dla każdego miasta, w zależności od wybranej pozycji z menu. Będą tutaj warunki sprawdzające jakie okno powinno zostać uruchomione, w zależności od wartości zmiennej ekran.
Przetestuj działanie funkcji draw(). Możesz skorzystać z kodu poniżej. Pamiętaj, aby przetestować działanie swojego programu.
Funkcje okien/ekranów aplikacji
Do swojego przewodnika dodaj ekrany powitalne. Możesz skorzystać z kodu poniżej. Pamiętaj, aby przetestować działanie swojego programu.
Ekran powitalny

Kod ekranu powitalnego:
Ekran menu głównego z miastami

Kod ekranu menu główne, rozmieszcza wcześniej zaprojektowane tło (kontur Polski):
Ekrany miast

Ekrany poszczególnych miast, będą się różnić w zależności od wczytanego miasta. Dlatego potrzeba kilku zmiennych odpowiedzialnych za video. O tym, które z wideo zostanie wyświetlone zadecyduje instrukcja wyboru switch(miasto).
Opisy miast zostały napisane w celach demonstracyjnych, zaleca się ich zmianę lub rozszerzenie o dodatkowe informacje.
Chcąc dodać więcej niż jedną linijkę opisu miasta, można skorzystać ze znaku nowej linii \n wstawianego w wybranym przez nas miejscu. Dodatkowo dla zachowania czytelności, można połączyć fragmenty tekstu znajdujące się na poszczególnej linii za pomocą operatora +.
Funkcje odpowiedzialne za interakcje
Funkcje odpowiedzialne za interakcje pozwolą obsłużyć reakcje aplikacji na zachowania myszy. Pomocne są tutaj zmienne systemowe mouseX oraz mouseY, które przechowują pozycję kursora od punktu (0, 0), czyli lewego górnego rogu okna programu.
mousePressed()
Pierwsza funkcja odpowiada za reakcję na kliknięcie dowolnego przycisku myszy, aplikacja musi mieć różne zachowanie w zależności od ekranu, na którym obecnie znajduje się użytkownik.
mouseMoved()
Kolejna funkcja dotyczy pozycji kursora na ekranie, jest ona uruchamiana za każdym razem, gdy mysz zostanie poruszona.
Przetestuj działanie funkcji odpowiedzialnych za obsługę myszy.
Podsumowanie projektu
Przewodnik powstał w oparciu o wcześniej ułożony plan aplikacji. Oczywiście taki przewodnik można zrobić na wiele sposobów. Poniżej można pobrać kod razem z obrazami, video oraz ścieżką dźwiękową użytą w projekcie. Żeby dokładnie zrozumieć działanie, najlepiej jest uruchomić i poeksperymentować z kodem lub napisać własny przewodnik.
Wykorzystaj poniższy dzienniczek do zapisania swoich notatek i przemyśleń.