Przy okazji chciałbym złożyć wszystkim, którzy czasami zerkają na mojego bloga najserdeczniejsze życzenia noworoczne, żeby wasz kod się kompilował szybko i bezbugowo, żebyśmy w tym nowym roku dalej poszerzali swoje zainteresowania, rozwijali się, ale też znaleźli czas na zabawę w fajnym towarzystwie. Szczęśliwego i udanego Sylwestra.
Święta, święta i po świętach, jeszcze Sylwester-Nowy rok i powrót na studia. Semestr się powoli kończy, a więc studenci informatyki zaczynają pisać projekty na niektóre przedmioty. Jak się okazało, może to czasami być przyczynkiem do rozpoznania jakiegoś zagadnienia.
Moim zdaniem dość ciekawy projekt trafił się nam na Grafice Komputerowej i Multimediach. Mamy napisać własny format pliku graficznego z kompresją - wybór padł na kompresję LZW oraz dwa programy: konwertujący plik BMP na nasz format i drugi, który konwertuje w drugą stronę. Podczas dyskusji z członkami zespołu projektowego, doszliśmy do wniosku, że napiszemy to w C++ jako aplikacje konsolowe. Jeżeli starczy nam czasu, to stworzymy programy - "nakładki graficzne". Będą to programy okienkowe zapewniające przyjazny sposób wyboru paru opcji np. tryb koloru (RGB, CMYK i coś tam jeszcze ma być). Programy te będą uruchamiać programy konsolowe napisane w C++ i wybrane opcje przekazywać poprzez listę argumentów wywołania. Pomyślałem sobie, że fajnie by było takie coś napisać przy użyciu Swinga - dzięki temu usiadłem i zacząłem badać temat: Jak uruchomić z poziomu Javy program napisany w C++?
sobota, 31 grudnia 2011
wtorek, 27 grudnia 2011
AndroidPlay - część 6: Obsługa TouchEventów
Wstęp.
Dziś już ostatnia lekcja przygotowawcza do tworzenia gry. Umiemy wystarczająco dużo, żeby wyświetlać użytkownikowi scenę naszej gry. Teraz każdy z was zapewne powie: ej chłopie, ale przecież gry to rozrywka interakcyjna, komunikacja musi zachodzić w obie strony - my umiemy powiedzieć coś użytkownikowi, ale co z nim?! Tym zajmiemy się teraz, przed nami obsługa ekranu dotykowego.
Dziś już ostatnia lekcja przygotowawcza do tworzenia gry. Umiemy wystarczająco dużo, żeby wyświetlać użytkownikowi scenę naszej gry. Teraz każdy z was zapewne powie: ej chłopie, ale przecież gry to rozrywka interakcyjna, komunikacja musi zachodzić w obie strony - my umiemy powiedzieć coś użytkownikowi, ale co z nim?! Tym zajmiemy się teraz, przed nami obsługa ekranu dotykowego.
czwartek, 22 grudnia 2011
AndroidPlay - część 5: Przeźroczystość i przekształcenia modelowania
Do tej pory nauczyliśmy się rysować czworokąt w OpenGL ES na platformie Android. Chcemy stworzyć grę, a więc musimy wprowadzić trochę ruchu do naszej sceny. W dzisiejszej lekcji nauczymy się:
1. Przeźroczyste bitmapy.
Załóżmy, że posiadamy odpowiedni plik z obrazkiem posiadającym kanał alpha w formacie .png. Rysowanie i tworzenie bitmapy przebiega dokładnie tak samo jak w lekcji o rysowaniu oteksturowanych czworokątów. Musimy tylko uruchomić łączenie kolorów i określić sposób ich łączenia w buforze koloru przy pomocy funkcji glBlendFunc(). Jej pierwszy parametr określa funkcję łączenia źródła, drugi celu. W praktyce jest ich kilka, natomiast nie używa się ich prawie wcale. Do uzyskania przeźroczystości używamy takich konfiguracji.
- rysować przeźroczyste bitmapy
- wykonywać przekształcenia modelowania
1. Przeźroczyste bitmapy.
Załóżmy, że posiadamy odpowiedni plik z obrazkiem posiadającym kanał alpha w formacie .png. Rysowanie i tworzenie bitmapy przebiega dokładnie tak samo jak w lekcji o rysowaniu oteksturowanych czworokątów. Musimy tylko uruchomić łączenie kolorów i określić sposób ich łączenia w buforze koloru przy pomocy funkcji glBlendFunc(). Jej pierwszy parametr określa funkcję łączenia źródła, drugi celu. W praktyce jest ich kilka, natomiast nie używa się ich prawie wcale. Do uzyskania przeźroczystości używamy takich konfiguracji.
gl.glEnable(GL10.GL_BLEND); // Włącz łączenie kolorów gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA); // Określ funkcje łączenia kolorów
piątek, 9 grudnia 2011
Początek grudnia konferencyjnie
Dawno nie pisałem - główną wymówką są studia, które pochłaniają trochę czasu, którym niestety nie umiem dobrze zarządzać (muszę to zmienić!). Ostatnio było dość sporo wpisów-lekcji AndroidPlay i nic więcej. Dziś chcę się podzielić wrażeniami z ostatnich dwóch konferencji, których byłem uczestnikiem - słuchaczem, który siedzi sobie i klaszcze kiedy trzeba ;-).
wtorek, 29 listopada 2011
AndroidPlay - część 4: Czworokąty i tekstury
Wstęp.
W poprzedniej części stworzyliśmy aplikację wyświetlającą trójkąt. Teraz przyszedł czas na teksturowanie - bo co by to była za gra, gdyby wyświetlała tylko różnokolorowe figury - dawno temu może by to przeszło, ale nie dziś.
W poprzedniej części stworzyliśmy aplikację wyświetlającą trójkąt. Teraz przyszedł czas na teksturowanie - bo co by to była za gra, gdyby wyświetlała tylko różnokolorowe figury - dawno temu może by to przeszło, ale nie dziś.
niedziela, 2 października 2011
AndroidPlay - część 3: Wprowadzenie w OpenGL ES 1.0/1.1 - rysujemy trójkąt
Wstęp.
System Android posiada wsparcie dla OpenGL ES w wersji 1.0/1.1 oraz 2.0 (Od wersji Android 2.2 - API level 8). Mamy do niego dostęp albo poprzez androidowe API, albo przy użyciu Android NDK (Native Development Kit), gdzie odwołujemy się bezpośrednio do funkcji OpenGL ES. Będziemy korzystać z tego, co oferuje nam API. Na chwilę obecną emulator nie wspiera OpenGL ES, dlatego do testowania kodu potrzebujemy fizycznego urządzenia. Opis konfiguracji urządzenia i systemu operacyjnego znajduje się w tej części tego kursu. Będę starał się omawiać używane funkcje OpenGL, ale po szczegóły odsyłam do innych źródeł.
System Android posiada wsparcie dla OpenGL ES w wersji 1.0/1.1 oraz 2.0 (Od wersji Android 2.2 - API level 8). Mamy do niego dostęp albo poprzez androidowe API, albo przy użyciu Android NDK (Native Development Kit), gdzie odwołujemy się bezpośrednio do funkcji OpenGL ES. Będziemy korzystać z tego, co oferuje nam API. Na chwilę obecną emulator nie wspiera OpenGL ES, dlatego do testowania kodu potrzebujemy fizycznego urządzenia. Opis konfiguracji urządzenia i systemu operacyjnego znajduje się w tej części tego kursu. Będę starał się omawiać używane funkcje OpenGL, ale po szczegóły odsyłam do innych źródeł.
wtorek, 27 września 2011
KnowladgeBlackBelt
O knowledgeblackbelt.com dowiedziałem się z wpisu Jacka Laskowskiego na jego blogu. Zaciekawiony zarejestrowałem się - było to, jak mi przypominają na moim profilu, miesiąc i 10 dni temu. Tak zacząłem przygodę z tym serwisem, wtedy jeszcze nazywał się BlackBeltFactory. Dziś udało mi się zdobyć pomarańczowy pas, co otwiera mi drogę do wielu egzaminów i aktywniejszego uczestniczenia we współtworzeniu społeczności. Z tej okazji chcę się podzielić informacjami na temat tego fajnego przedsięwzięcia.
sobota, 24 września 2011
AndroidPlay - część 2: Hello Android!
Pierwszym programem w książkach czy kursach jest program Hello world, tak też będzie w przypadku tego kursu - napiszemy prostą aplikację, która wypisze na ekranie napis "Hello Android!". Do dzieła!
Tworzymy projekt.
Tworzymy projekt.
- W menu Eclipse wybieramy File > New > Project...
- Na liście przechodzimy do folderu Android i wybieramy Android Project.
- Uzupełniamy odpowiednie pola:
piątek, 23 września 2011
AndroidPlay - część 1: Podstawy systemu Android
W tej części kursu zobaczymy, co tam ten zielony robocik ma pod maską. Pisząc oprogramowanie na daną platformę warto znać podstawy jej zachowania. Zawarta tutaj wiedza, to totalne streszczenie, dlatego jeżeli chcesz wiedzieć więcej musisz zaglądnąć np. do dobrej książki, albo na stronę developer.android.com.
czwartek, 22 września 2011
AndroidPlay - część 0: Przygotowanie środowiska Eclipse
Wybieramy środowisko Eclipse, bo myślę, że ma największe wsparcie ze strony twórców Androida, którzy trzymają pieczę nad swoją wtyczką do niego. Rozpoczęcie pracy z Androidem jest bardzo przyjemne i proste, potrzebujemy:
- środowiska programistycznego Eclipse (zaleca się używanie wersji Classic, for Java Developers lub for Java EE Developers) - pobierz.
- zainstalowanego JDK.
- android SDK odpowiedniego dla naszego systemu - pobierz.
- pluginu ADT (Android Development Tools) w Eclipse (instalacja z poziomu Eclipse)
wtorek, 20 września 2011
Tydzień pod znakiem Androida
Kilka dni temu skończyłem prace nad projektem JAutomaton, pisałem tam w odpowiedzi na komentarz Seba, że czas wziąć się za coś nowego. Niedawno kupiłem sobie HTC Wildfire S, co skłoniło mnie to do zainteresowania się platformą Android. W końcu fajnie by było zaprogramować sobie coś na swój telefon, mam rację?
czwartek, 15 września 2011
Zabawa z Java Web Start
Krótko o Java Web Start.
Oprogramowanie Java Web Start pozwala użytkownikom uruchamiać aplikację bez jej instalacji, wystarczy jedno kliknięcie w link na stronie internetowej, który prowadzi do pliku Java Network Lunch Protocol (JNLP). Lub uruchomienie ściągniętego pliku JNLP. Przykład można zobaczyć np. w moim wpisie dotyczącym programu JAutomaton. Będę się w tym wpisie na nim opierał. Od wersji Java 2 Platform, Standard Edition 1.4.2, Java Web Start jest zainstalowane jako część Java Runtime Environment (JRE).
Oprogramowanie Java Web Start pozwala użytkownikom uruchamiać aplikację bez jej instalacji, wystarczy jedno kliknięcie w link na stronie internetowej, który prowadzi do pliku Java Network Lunch Protocol (JNLP). Lub uruchomienie ściągniętego pliku JNLP. Przykład można zobaczyć np. w moim wpisie dotyczącym programu JAutomaton. Będę się w tym wpisie na nim opierał. Od wersji Java 2 Platform, Standard Edition 1.4.2, Java Web Start jest zainstalowane jako część Java Runtime Environment (JRE).
wtorek, 13 września 2011
JAutomaton uważam za ukończony
Tak to już jest z projektami, że stale pojawiają się rzeczy, które można by inaczej, lepiej... można by dodać to, albo jeszcze to. Sęk w tym, że trzeba wiedzieć kiedy skończyć. Myślę, że osiągnąłem ten etap. Ten wpis będzie traktował luźno o projekcie JAutomaton.
niedziela, 11 września 2011
Prosty edytor z kolorowaniem składni
Słowem wstępu.
Prace nad projektem JAutomaton trwają, raczej to już końcówka. Program ten ma za zadanie wykonywanie zdefiniowanych za pomocą słów kluczowych sekwencji poleceń typu: klikanie, poruszanie myszą i wciskanie klawiszy. Zachciało mi się dodać kolorowanie składni, w związku z tym, pomyślałem, że przedstawię swoje rozwiązanie tego problemu. Może komuś pomoże, albo podsunie jakiś pomysł. Tekst kierowany do początkujących, ale z podstawową znajomością Javy. Tekst podczas pisania strasznie się rozrósł.
Prace nad projektem JAutomaton trwają, raczej to już końcówka. Program ten ma za zadanie wykonywanie zdefiniowanych za pomocą słów kluczowych sekwencji poleceń typu: klikanie, poruszanie myszą i wciskanie klawiszy. Zachciało mi się dodać kolorowanie składni, w związku z tym, pomyślałem, że przedstawię swoje rozwiązanie tego problemu. Może komuś pomoże, albo podsunie jakiś pomysł. Tekst kierowany do początkujących, ale z podstawową znajomością Javy. Tekst podczas pisania strasznie się rozrósł.
poniedziałek, 22 sierpnia 2011
Hello world!
Witajcie,
Już bardzo długo zabierałem się za stworzenie strony, która mogła by służyć mi za wizytówkę w sieci. Myślę, że może to pomóc w rozwoju, być jego motorem napędowym. Czego ten blog ma dotyczyć? Z założenia blog ma dotyczyć sfery informatyki, myślę że w przyszłości mogą tutaj pojawić się:
Już bardzo długo zabierałem się za stworzenie strony, która mogła by służyć mi za wizytówkę w sieci. Myślę, że może to pomóc w rozwoju, być jego motorem napędowym. Czego ten blog ma dotyczyć? Z założenia blog ma dotyczyć sfery informatyki, myślę że w przyszłości mogą tutaj pojawić się:
- projekty, które udało mi się zrealizować
- artykuły w postaci wpisów, związane głównie z programowaniem i trzymane raczej w tych klimatach
- być może jakieś spostrzeżenia i ciekawostki
Subskrybuj:
Posty (Atom)