sobota, 31 grudnia 2011

Uruchamianie zewnętrznego programu

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++?

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.

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. rysować przeźroczyste bitmapy 
  2. 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 ;-).