Linux.pl

 START  |  BLOG  |  FORUM  |  POCZTA  |  HOSTING

Hosting Linux.pl
Smaller Default Larger

Ocena użytkowników: 0 / 5

Gwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 

Witam wszystkich stawiających pierwsze kroki w fascynujacym swiecie programowania.

W tym artykule postaram się przedstwić kilka porad oraz pomysłów na rozpoczęcie programowania w środowisku Gambas 2 dostępnym w większosci popularnych dystrubucji linuksowych.

Środowisko programistyczne Gambas 2 pozwala na zapoznanie się z programowaniem w języku? No właśnie – jest to swego rodzaju visual basic dla linuksa. Wszyscy którzy już zetknęli się z visual basic – poczują się w Gambas 2 jak „U siebie w domu”. Gwoli sprawiedliwości jedno trzeba przyznać, że nie wszystko jest tak samo jak w visual basic to jednak nawet poczatkujący programista nie powinien mieć żadnego problemu z opanowaniem tego przyjaznego środowiska programistycznego.

Zatem do dzieła. Na początek trzeba zainstalować Gambas 2 – no to chyba już wszyscy wiedzą, że w Ubuntu (jednej z najpopularniejszych dystrybucji Linuksa) zainstalowanie Gambas 2 sprowadza się do uruchomienia programu „Dodaj/Usuń programy” - znalezienia we wbudowanej wyszukiwarce „Gambas 2” , zaznaczenie pakietu do instalacji – no i jak kto woli, na szybką kawkę, albo na herbatkę. Można oczywiscie użyć Synaptica, lub „apt-get install....”, jak kto woli. Skrót do Gambas 2 po zainstalowaniu powinien znaleźc się w menu głównym w sekcji „Programowanie”.

I już możemy przystąpic do uruchomienia środowiska. Po uruchomieniu i określeniu miejsca katalogu projektów dla srodowiska możemy przystapić do utworzenia pierwszej aplikacji okienkowej w Gambas Do wyboru mamy kilka rodzajów aplikacji.

Proponuję na początek wybrać GTK+ (środowisko przyjazne dla gnome), a po prawej stronie możemy dołaczyć do nowo tworzonego projektu dodatkowe biblioteki. Klikając „Next” przechodzimy do następnego okna okreslamy miejsce na dysku dla dla nowo tworzonego projektu (np. nasz katalog domowy – próba utworzenia katalogu projektu w domyslnej lokalizacji – skonczy się wyświetleniem błędu o niemozliwości utworzenia projektu – wiadomo brak uprawnień do lokalizacji). Przechodząc dalej, w ostatnim okienku dialogowym określamy Nazwę projektu, oraz tytuł. Proponuję inne nazwy dla projektu i tytułu.

Nowy projekt

Ukazuje się naszym oczom okno nowego projektu. Po lewej stronie jest „browser zasobów projektu” - na środku okna widzimy formularz „Fmain” w trybie edycji, a po  prawej stronie znajdują się okna „Właściwosci wybranej kontrolki”, oraz zasobnik kontrolek – których będziemy używać w naszym pierwszym projekcie.

Wybieramy typ projektu

Warto przyjrzeć się jeszcze pozycjom w menu programu oraz paskom narzędziowym widocznym w górnej części okna. Oferują one różne funkcjonalności, o których powiem w dalszej części artykułu przy okazji tworzenia projektu.

Teraz możemy już przejśc do tego co chcemy sobie oprogramować , jaki temat wybierzemy, co chcemy sprawdzić? No cóż tutaj już każdy ma pełną dowolnośc a ograniczeniem jest tylko nasza kreatywność i  wyobraźnia. Ja tym razem przejdę w rejony mediów – a właściwie manipulacji klasami zawartymi w bibliotece gb.sdl.sound. Dostarcza ona kilku ciekawych rozwiązań umożliwiających manipulację plikami dźwiękowymi.

W naszym projekcie domyślnie biblioteka gb.sdl.sound nie jest włączona – zatem trzeba samodzielnie włączyć ją do projektu, tak aby móc korzystać z klas i metod tej biblioteki. W tym celu z menu programu wybieramy „Projekt → Właściowości” i w zakładce „Komponenty” - zaznaczamy bibliotekę „gb.sdl.sound” oraz zatwierdzamy nasz wybór klikając na przycisk „OK”. Teraz już możemy w pełni korzystać z tej biblioteki w naszym projekcie.

Zaczynamy zatem przygodę z Gambasem.

Proponuję abyśmy stworzyli wirtualny instrument muzyczny, który będzie posiadał klawiaturę i będzie umożliwiał granie z użyciem różnych barw instrumentów.

Żeby przygotować sobie roboczo nazwane przeze mnie banki barw będziemy również potrzebować jakiegoś programu do tego celu. Ja korzystam z LMMS – Linux MultiMedia Studio. No cóż w tym momencie powinienem opisać sposób przygotowywania próbek brzmień w LMMS – ale temat ten pozostawiam osobom zainteresowanym do „rozgryzienia we własnym zakresie”. Można również poszukać sampli dźwiekowych we wlasnym zakresie – korzystając z internetu lub wydawnictw i pism o tematyce muzycznej, które załączają często próbki dźwiękowe na płytach DVD lub CD.

Przejdźmy do naszego projektu. Na początek utworzymy klawiaturę muzyczną oferująca na przykład 3 oktawy. Użyjemy do zbudowania klawiatury przycisków dostępnych w zasobniku jako kontrolki typu „Button”. Przeciągając odpowiednią ilośc przycisków na formularz zbudujemy klawiaturę naszego wirtualnego instrumentu. Przykładowo może to wyglądać tak jak na obrazku poniżej.

Wirtualna klawiatura

Bo zbudowaniu wirtualnej klawiatury powinismy zastanowić się nad tym jak ją oprogramować aby klikając w poszczególne klawisze usłyszeć realne dźwieki? W tym celu w kodzie naszego formularza zbudujemy odpowiedni kod.

Teraz propounuję zadeklarownie kilku zmiennych. Zmiennej „dzwiek”, która będzie przechowywać scieżkę do pliku dźwiekowego. Zmiennej „kanalOdtwarzania” ,jest to zmienna typu Channel, dzieki której będziemy mogli skorzystać z metod odtwarzajacych w swobodny sposób nasze dźwieki (dokładniejszy opis działania i korzyści płynących z zastosowania klasy Channel – znajdziecie w dokumentacji Gambas 2 dostępnej po naciśnięciu przycisku F1 w otwartym oknie projektu).

Kolejna zmienna to „uzytkownik” - zmienna będzie pobierać dynamicznie nazwę konta użytkownika – oraz zmienna „sciezkadopliku” odpowiedzialna za wskazanie miejsca fizycznego położenia pliku, który ma być odtworzony przez klawiaturę.

PRIVATE dzwiek
AS Sound

PRIVATE
kanalOdtwarzania AS Channel

PRIVATE
uzytkownik AS String

PRIVATE
sciezkadopliku AS String

PUBLIC SUB
Form_Open()

uzytkownik = User.Name

END


 Kilka słów wyjaśnienia na temat kodu. U góry projektu podajemy deklarację zmiennych jako zmienne prywatne (dostępne tylko w zakresie formularza – klasy FMain). Niżej znajduje się kod metody wykonywanej po zdarzeniu „Otwarcia formularza” - zmiennej „uzytkownik”  przypisywana jest nazwa realnego użytkownika systemu. Teraz proponuję zaprojektować proste menu naszego projektu, które pozwoli na zmianę barw instrumentów, oraz doda dwie dodatkowe funkcjonalności. Aby zaprojektować menu naszej aplikacji, należy kliknąć prawym klawiszem myszki w widoku formularza i z widocznego menu kontekstowego wybierać pozycję „Edytor menu”. Otwiera się okno w którym możemy dodawać elementy menu – edytować je, dodawać ikony menu, przypisywać skróty klawiaturowe, zmieniac kolejność elementów, tak jak na obrazku poniżej.

Edytor menu

Dla każdego z elementów menu – powinniśmy oprogramować możliwość ustawiania nowej ścieżki do pliku z dźwiękiem. Można zrobić to tak:

PUBLIC SUB
Piano_Click()

sciezkadopliku = "/home/" & user & "/Test/Piano/"

END

PUBLIC SUB
Trabka_Click()

sciezkadopliku = "/home/" & user & "/Test/Trąbka/"

END

Dla każdej pozycji z Menu „Barwy” należy zapisać taki sam kod – tak aby po wywołaniu zdarzenia „Click” zmienna „sciezkadopliku” zawierała prawidłową scieżkę.

Oczywiście wczesniej należy utworzyć odpowiednie katalogi w katalogu głównym programu lub w innym dowolnym katalogu :)

Teraz przejdźmy do oprogramowania naszej „Wirtualnej klawiatury” tak
aby można było już na niej cokolwiek zagrać!

Propunuję wykorzystać do tego celu metodę „Click” dla każdego klawisza naszej klawiatury. Wszystkie buttony wczesniej przemianowałem tak, aby odzwierciedlały swoją nazwą dźwięk który będzie odtwarzany w momencie kliknięcia danego klawiasza, a więc klawisz C z pierwszej oktawy to C1, kalwisz C z drugiej oktawy to C2 i analogicznie pozostałe klawisze. Co się dzieje kiedy klikniemy na klawisz C1?

PUBLIC SUB
C1_Click()

dzwiek = NEW Sound(sciezkadopliku & C1.ogg)

kanalOdtwarzania = dzwiek.Play

END

Otóż w metodzie „Click” klawisza C1 umieściliśmy metodę która tworzy nowy dźwięk – w konstruktorze podajemy ścieżkę wraz z operatorem konkatenacji czyli łączenia łańcuchów i nazwę dźwięku jaki ma być odtworzony, wraz z rozszerzeniem – w tym wypadku ogg (format natywnie obsługiwany przez ubuntu). Następnie korzystamy z wcześniej zdeklarowanego w klasie obiektu "kanalOdtwarzania" i za jego pomocą uruchamiamy metodę Play() dla obiektu typu sound, nazwanego jako „dźwięk”. I to wszystko w zasadzie jeśli chodzi o sposób oprogramowania naszej „Wirtualnej klawiatury”. Oczywiście możecie powiedzieć – chcę grać dźwieki za pomocą klawiatury komputera i jak to zrobić? Podpowiem że można to zrobić bardzo szybko i prosto.

Wykorzystajmy w tym celu zdarzenie naszego formularza – nazwane „Key press”. Otórz zdarzenie to jest wywoływane zawsze wtedy kiedy naciskamy dowolnie wybrany klawisz klawiatury naszego komputera – teraz tylko wystarczy „powiązać” odpowiedni klawisz z odpowiednim dźwiekiem, jak to zrobic pokażę poniżej.

PUBLIC SUB
Form_KeyPress()

IF Key.code = key["Q"] THEN

C1_Click()

ELSE IF

................................

END IF

END

Na początku sprawdzamy jaki klawisz jest wciskany na formularzu, w naszym przypadku jest to kalwisz „Q” , wówczas wywołujemy metodę C1_Click – jak widomo służy ona do odtworzenia konkretnie wybranego dźwięku! Do każdego z kalwiszy klawiatury komputera możemy w analogiczny sposób „przypisać” wybrany plik dźwiękowy.

Pamiętajmy jednak o tym iż w całym projekcie należy podawać bardzo dokładnie scieżki do plików gdyż można spowodować błąd programu! Wróćmy na chwilkę do metody odtwarzającej dźwięk i dopiszmy do metody polecenie „Catch” - jest to polecenie po którym możemy wyświetlić komunikat, że wystapił błąd programu – to po prostu obsługa potencjalnych błędów. Może to wyglądać tak:

PUBLIC SUB
C1_Click()

dzwiek = NEW
Sound(sciezka & C1.ogg)

kanalOdtwarzania = dzwiek.Play

CATCH

Message.Error("Błąd odtwarzania - nie znalazłem pliku!")

END

Tak napisana metoda-funkcja (jak zwał - tak zwał :) ) pozwala w kontrolowany sposób przerwać działanie wybranej funkcji programu!

Obsługa błędu

Pozostały nam jeszcze do oprogramowania dwie funkcje z naszego menu. Chodzi ofunkcję „Dzwięki” i „Klawisze”. Pierwsza będzie wyswietlać dźwięki skali muzycznej na klawiaturze, druga będzie wyswietlać symbole klawiszy klawiatury komputera na naszej wirtualnej
klawiaturze instrumentu.

Jak oprogramowac te funkcje? Bardzo prosto!!! Należy skorzystać z właściwości każdego Buttona klawiatury – własciwość – Text. Jeśli ktokolwiek miałby z tym trudności podpowiem że można to zrobic tak:

PUBLIC
SUB Dzwieki_Click()

IF ME.Dzwieki.Value = "T" THEN

ME.C1.Text = "C1"

ME.C2.Text = "C2"

ME.C3.Text = "C3"

ME.C4.Text = "C4"

ME.Cis1.Text = "Cis1"

ME.Cis2.Text = "Cis2"

ME.Cis3.Text = "Cis3"

ME.D1.Text = "D1"

….......................................................
:) i tak dalej

ELSE

ME.C1.Text = ""

ME.C2.Text = ""

ME.C3.Text = ""

ME.C4.Text = ""

ME.Cis1.Text = ""

ME.Cis2.Text = ""

ME.Cis3.Text = ""

ELSE

ME.C1.Text = ""

ME.C2.Text = ""

ME.C3.Text = ""

ME.C4.Text = ""

ME.Cis1.Text = ""

ME.Cis2.Text = ""

ME.Cis3.Text = ""

ME.D1.Text = ""

…..........................................
:) i tak dalej

END
IF

Lecz jest tutaj jeden mały „haczyk” o którym wcześniej nie wspomniałem. Przy budowaniu menu w pozycjach odpowiedzialnych za uruchamianie metod„Dzwieki” i „Klawisze”, należy przy pozycjach tych zaznaczyć właściwość „Toogle”, pozwala ona na to że menu będzie miało dwa tzw „Stany” - czyli włącz i wyłącz.

Edycja menu

I tak doszlismy do końca lekcji o programowaniu w środowisku Gambas 2 – Środowisko to jest w moim przekonaniu bardzo „przyjazne deweloperom”. Gambas 2 oferuje również inne funkcjonalności takie jak np.: Utworzenie z naszego projektu – archiwum źródlowego lub tez pliku wykonywalnego , bądź pakietu instalacyjnego! Wspaniałe możliwości!!!! I to wszystko za darmo!!! Naprawdę warto zainteresować się środowiskiem Gambas 2. Pozdrawiam i polecam lekturę artykułu!

W razie pytań lub watpliwości proszę pisać komentarze – będę się starał wyjaśnić wszystko w miarę możliwości.

Dodaj komentarz


Kod antyspamowy
Odśwież