POLITECHNIKA ŚLĄSKA WYDZIAŁ AUTOMATYKI, ELEKTRONIKI I INFORMATYKI. Projekt inżynierski. Gra zręcznościowa z elementami edukacyjnymi.

Podobne dokumenty
D O K U M E N T A C J A

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

Zastosowania Robotów Mobilnych

Musimy do naszej gry załadować materiały. Są to trzy obrazki:

Programowanie obiektowe

Tworzenie prostych gier w programie GameMaker

Król Łukasz Nr albumu:

INSTRUKCJA UŻYTKOWNIKA PORTALU SIDGG

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

Tworzenie prezentacji w MS PowerPoint

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Dokumentacja projektu QUAIKE Architektura oprogramowania

Ping-Pong. Gra dla dwóch graczy.

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Unity 3D - własny ekran startowy i menu gry

Rysunek 1: Okno timeline wykorzystywane do tworzenia animacji.

Program V-SIM tworzenie plików video z przebiegu symulacji

Referat Pracy Dyplomowej

Unity. Platforma do tworzenia gier dla różnych systemów docelowych, m.in.: Windows, macos, ios, Android, Powstała w 2005 r., obecnie wersja 5.3.

Spadające jabłuszka. licencja CC-BY-SA Uznanie autorstwa Na tych samych warunkach 3.0 Polska. Strona 51

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Podstawy technologii cyfrowej i komputerów

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

Sieciowe Technologie Mobilne. Laboratorium 2

Strzelanka dla dwóch graczy

Rozdział 2. Konfiguracja środowiska pracy uŝytkownika

Czym jest wykrywanie kolizji. Elementarne metody detekcji kolizji. Trochę praktyki: Jak przygotować Visual Studio 2010 do pracy z XNA pod Windows

INSTRUKCJA OBSŁUGI ⓫ Dodatki

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

Dokumentacja projektu Makao karciana gra sieciowa

Symulacja samochodu z kamerą stereowizyjną. Krzysztof Sykuła 15 czerwca 2007

INSTRUKCJA OBSŁUGI DIODOWEGO WYŚWIETLACZA TEKSTÓW PIEŚNI STEROWANEGO Z TABLETU 10,1 '

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 3

1 Raporty - wstęp. 1. Wstążka. 2. Podgląd listy raportów wraz z menu kontekstowym:

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

1 Podstawowe informacje 2. 2 Tworzenie gry Rejestracja do gry Lista gier 7. 4 Gry Archiwalne 8. 5 Lista Graczy 9

Podręcznik użytkownika programu. Ceremonia 3.1

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Systemy wirtualnej rzeczywistości. Komponenty i serwisy

Cykl lekcji informatyki w klasie IV szkoły podstawowej. Wstęp

Obsługa programu Paint. mgr Katarzyna Paliwoda

Informatyka II. Laboratorium Aplikacja okienkowa

Przeglądanie, drukowanie i eksportowanie raportów.

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

Dodawanie grafiki i obiektów

Jak zadbać o swój komputer?

ActionFX oprogramowanie do sterowania efektami platform i kin 7D V1.0.1

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

S YSTEM O PERACYJNY L INUX W PARCOWNI

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

Robo - instrukcja obsługi

Zasoby. Musimy zaimportować zasoby dla gry z Asset Store

Rozdział II. Praca z systemem operacyjnym

Ustalanie dostępu do plików - Windows XP Home/Professional

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Padlet wirtualna tablica lub papier w Internecie

ROZDZIAŁ 11 - DODATKI SPIS TREŚCI

Modelowanie części w kontekście złożenia

Komputery I (2) Panel sterowania:

Tematem pracy jest aplikacja, która ma za zadanie wspomagać proces tworzenia planów studiów, oraz umożliwiać przeglądanie już utworzonych planów.

Spis treści. Rozdział 3. Podstawowe operacje na plikach...49 System plików Konsola Zapisanie rezultatu do pliku... 50

Google Earth. Co to jest Google Earth? Co to jest KML? Skąd można pobrać Google Earth?

Programowanie gier 3D w HTML5. Andrzej P.Urbański Politechnika Poznańska

Nr: 15. Tytuł: Kancelaris w systemie Windows 8 i Windows 8.1. Data modyfikacji:

Unity 3D - pierwsze skrypty

Compas 2026 Vision Instrukcja obsługi do wersji 1.07

Dell Display Manager - przewodnik użytkownika

Prison of Carbon Refleksje na temat procesu tworzenia gry i projektowania. Dla koła naukowego RPG Jakub SceNtriC

Windows Workflow Foundation (wprowadzenie - prosty przykład Sequential Workflow):

dr inż. Tomasz Krzeszowski

Uniwersytet Zielonogórski. Kurs: Autodesk 3D Studio MAX Komputerowa grafika 3D. 3dsmax Tworzenie animacji 3D.

Układy VLSI Bramki 1.0

Spis treści. 1 Aplet. 2 Od aplikacji do apletu. 1 Aplet 1. 2 Od aplikacji do apletu 1. 3 Budowa apletu 3. 4 Cykl życia apletu 4

AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE. QuIDE Quantum IDE PODRĘCZNIK UŻYTKOWNIKA

I Tworzenie prezentacji za pomocą szablonu w programie Power-Point. 1. Wybieramy z górnego menu polecenie Nowy a następnie Utwórz z szablonu

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

Uniwersytet Łódzki dla dzieci

KOŁO NAUKOWE INFORMATYKÓW SYSTEMY KONTROLI WERSJI CZ.1 16 XII 2009 OPRACOWAŁ: PRZEMYSŁAW PARDEL

WYKORZYSTANIE KOMPUTERA W EDUKACJI DZIECI W MŁODSZYM WIEKU SZKOLNYM

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Podstawowe elementy GUI cz. 2 i 3 - zadania

Tworzenie infografik za pomocą narzędzia Canva

Misja#3. Robimy film animowany.

Przewodnik... Tworzenie Landing Page

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

Kopiowanie przy użyciu szyby skanera. 1 Umieść oryginalny dokument na szybie skanera stroną zadrukowaną skierowaną w dół, w lewym, górnym rogu.

1 Moduł Lutron HomeWorks QS

Języki i paradygmaty programowania - 1


Podręcznik Kollision. Paolo Capriotti Aktualizacja polskiego tłumaczenia: Krzysztof Woźniak

dziennik Instrukcja obsługi

Tworzenie menu i authoring w programie DVDStyler

Animacje z zastosowaniem suwaka i przycisku

Gry Komputerowe Laboratorium 1. Zajęcia organizacyjne Animacja z uwzględnieniem czasu. mgr inż. Michał Chwesiuk 1/22. Szczecin,

Techniki wstawiania tabel

Transkrypt:

POLITECHNIKA ŚLĄSKA WYDZIAŁ AUTOMATYKI, ELEKTRONIKI I INFORMATYKI Projekt inżynierski Gra zręcznościowa z elementami edukacyjnymi Bartłomiej Socha Dr. Inż. Ryszard Winiarczyk Gliwice, styczeń 2011

Spis treści 1. Wprowadzenie i przedstawienie idei projektu...3 2. Wybór narzędzi do realizacji projektu...4 3. Opis projektu...7 3.1. Struktury klas...7 3.2. Opis klas...9 3.3. Opis najważniejszych metod...13 4. Obsługa programu...15 5. Podsumowanie...20 6. Bibliografia...21

1. Wprowadzenie i przedstawienie idei projektu Celem pracy inżynierskiej było zaprojektowanie i zrealizowanie gry zręcznościowej z elementami edukacyjnymi. Gra jest przeznaczona dla młodszych dzieci, a więc gra powinna mieć uproszczone menu i prosty, intuicyjny sposób nawigacji, które można opanować bez czytania zbyt obszernej instrukcji. Dziedziną edukacji będą proste zagadki matematyczne.

2. Wybór narzędzi do realizacji projektu Do realizacji aplikacji niezbędna jest przede wszystkim biblioteka graficzna. Można by zdecydować się na zwykłego DirectDrawa, Allegro, czy też XNA. Zdecydowałem się na XNA, gdyż wydawało mi się najłatwiejsze w obsłudze. Poza tym współpracuje z Visual Studio, które jest moim ulubionym środowiskiem. Można pisać także w C# przy pomocy XNA, a jest to język, który chyba najlepiej jest najlepiej znany przeze mnie. Dodatkowo, uznano, że pomocne będą narzędzia kontroli wersji. Tutaj zdecydowano się na system kontroli wersji SVN. Jako klient posłużył TortoiseSVN, a do serwera użyto google code u. Poniżej przedstawiono wybory Języka, środowiska programistycznego, bibliotek i dodatkowych narzędzi z dokładniejszym uzasadnieniem. rodzaj nazwa opis Język C# 3.0 Zdecydowano na użycie tego języka programowania, gdyż jest uproszczony i w pełni obiektowy, a dodatkowo daje bardzo duże możliwości. Środowisko Visual Studio Jest to bardzo dobre środowisko 2008 SP1 pracy, jeżeli chodzi o programowanie, ponieważ jest niezawodny, szybki oraz bardzo wygodny z ogromnymi możliwościami konfiguracyjnymi. Notepad++ Bardzo potężne i szybkie narzędzie do edycji plików tekstowych. Posiada opcje kolorowania składni w wielu językach (takich jak C, C++, C#,

XML, Ada, Turbo Pascal i wielu innych). Był pomocny przy pisaniu skryptów budujących projekt. Dodatkowymi opcjami jest m. in. Możliwość rozszerzenia programu o różnorodne pluginy. Biblioteki XNA 3.0 Zdecydowano się na tą bibliotekę, ponieważ można dzięki niej pisać aplikacje graficzne w miarę łatwo i przystępnie. Ponadto, można realizować projekty w Visual Studio oraz przy pomocy języka C# dzięki tej technologii, co jest dodatkowym atutem, gdyż obie technologie bardzo dobrze spisały się w projekcie. Dodatkowe TortoiseSVN TortoiseSVN jest jednym z narzędzia najpopularniejszych i niezawodnych klientów SVN. Dodatkowo, jest zintegrowany z eksploratorem Windows, co znacznie ułatwia pracę. Googlecode Jest to narzędzie udostępnione przez google. Jest to de facto darmowy serwer SVN. Ciężko jest cokolwiek o nim napisać, gdyż jest po prostu niezawodny i spełnia swoją rolę bezbłędnie GhostDoc Narzędzie do tworzenia komentarzy XML-owych. Przydatne podczas pisania kodu. Informacje tutaj wpisane, współpracują z Microsoftowym

.NET framework 3.5 Intellisensem, przez co tworzenie oprogramowania jest łatwiejsze i o wiele bardziej czytelniejsze. Jest to biblioteka opracowana przez Microsoft udostępniająca platformę programistyczną oraz środowisko uruchomieniowe CLR.

3. Opis projektu 3.1. Struktury klas: Struktura klas w tym projekcie inżynierskim.

Pozostałe klasy, które zostały stworzone przy realizacji projektu.

3.2. Opis klas: nazwa Słowa kluczowe opis BaseObject public abstract Reprezentuje fizyczny obiekt. Zawiera takie właściwości jak masa, elastyczność, wytrzymałość, niezniszczalność, czy też liczbę punktów za zniszczenie. Camera: ObjectRectangle public Klasa ta reprezentuje widok kamery. Zawiera aktualną pozycję oraz obiekt śledzony, który kamera śledzi. Można ustalić kamerze współczynnik Vector2 followcoefficient. Mówi on jak bardzo kamera podąża za obiektem śledzonym w dwóch płaszczyznach. Powinno się ustawiać wartości z przedziału (0; 2). Im mniej, tym kamera jest bardziej leniwa i pozostaje w tyle za obiektem, im więcej tym kamera szybciej reaguje na zmianę pozycji obiektu. Dla wartości mniejszych niż 1, kamera jest leniwa i zostaje lekko w tyle za obiektem. Dla wartości dokładnie 1, kamera jest dokładnie w miejscu obiektu dla danej osi. Dla wartości większych niż 1, kamera wyprzedza ruch obiektu. CheatEngine public Jest to tylko klasa do testowania. Umożliwia w szybki sposób przejście lewelu czy uczynić statek niezniszczalnym przy pomocy specjalnych kodów. DataManager public abstract Odpowiada za ładowanie obiektów graficznych. Podaje tak załadowane obiekty do reszty programu. FPSCounter public abstract Liczy ilość klatek na sekundę dla 10 klatek średnio. Game1 public Klasa odpowiadająca za początkową

inicjalizację oraz odświeżania grafiki oraz fizyki poprzez klasę World. Input public Klasa odpowiada za obsługę klawiatury, ewentualnie GamePada, który obsługuje użytkownik. Jeżeli został naciśnięty odpowiedni przycisk, klasa Input bezpośrednio steruje statkiem podnosząc go do góry bądź pozwalając grawitacji ściągnąć go na dół. Object: BaseObject public Podstawowy obiekt, który widzimy w grze (na przykład chmura czy statek kosmiczny). Dziedziczy po klasie BaseObject. Czyli zawiera takie informacje, jak na przykład masa. Dodatkowo posiada na przykład prędkość oraz sprite (reprezentacja graficna obiektu). Opis klasy Sprite, znajduje się poniżej. W skrócie można napisać, że jest to reprezentacja graficzna obiektu. ObjectGenerator public Klasa ta odpowiada za losowe generowanie obiektów z prawej strony ekranu. Jej zadaniem jest także losowe generowanie zagadek przy pomocy klasy Riddle, a także losowe generowanie odpowiedzi na tą zagadkę. Klasa ta też wczytuje z dysku dane obiektów z poszczególnych obiektów przy pomnocy klasy ObjectGeneratorListEntity. ObjectGenerator ListEntity: public Klasa ta jest pomocna przy wczytywaniu z dysku właściwości obiektów generowanych BaseObject losowo w kontekście wysokości, skali, częstości występowania i nazwy pliku z teksturą. ObjectRectangle public Klasa reprezentuje prostokąt. Pozwala sprawdzić czy dany prostokątny obiekt

znajduje się na przykład na ekranie czy też czy jest w kolizji z innym obiektem prostokątnym. Options public abstract Tutaj przechowywane są takie informacje jak rozdzielczość ekranu, czcionka, efekt shaderowy, czy też kamera. Tutaj są też wczytywane czcionki przy inicjalizacji programu, czy też ustawiany jest obiekt do śledzenia dla kamery. Program static private Jest to klasa automatycznie wygenerowana przy tworzeniu nowego projektu XNA przy pomocy Visual Studio. Riddle public Generuje nowe zagadki poprzez klasę ObjectGenerator. Przygotowuje również prawidłowe odpowiedzi do tej zagadki. Sprite: ObjectRectangle public Tutaj jest przechowywana reprezentacja graficzna obiektów. Również tutaj, dzięki dziedziczeniu z klasy ObjectRectangle, można sprawdzać czy doszło do kolizji obiektów. Tutaj również można wczytywać tekstury z plików. TextObject: BaseObject public Klasa posiada tekst oraz liczbę punktów za wjechanie na nie. W kontekście gry są to odpowiedzi do zagadek. Za najechanie na prawidłową odpowiedź, gracz dostaje 500 punktów, natomiast po wjechaniu w nieprawidłową odpowiedź, graczowi zostaje odjęte 500 punktów. Tile public Klasa posiada Sprite i jest to po prostu tło gry. W tym wypadku jest to niebo, gwiazdy, ziemia czy mars. Można ustalić w tej klasie czy tło jest nieruchome względem gracza czy też nie.

World public Tutaj są przechowywane wszystkie obiekty graficzne, jak również tła. Odbywa się tu symulacja fizyki oraz odrysowywanie obiektów czy też napisów informacyjnych. Tutaj też następuje ładowanie kolejnych poziomów.

3.3 Opis najważniejszych metod nazwa klasa Słowa Opis kluczowe Update World public void Metoda ta ma za zadanie zaktualizować wszystko to co się dzieje na ekranie. W pierwszej kolejności, klasa ta przyspiesza obiekty grawitacją (o ile dla danego obiektu grawitacja jest włączona). Gdy to już się stanie, zostaje sprawdzone, czy obiekt nie jest w kolizji z innym obiektem. Jeżeli jest, następuje zabranie części punktów wytrzymałości obiektu i następuje symulowanie zderzenia, po którym obiekty oddalają się od siebie. Następnie są generowane nowe obiekty za prawą krawędzią ekranu. Po czym jest sprawdzane, czy nie zginął jakiś obiekt. Jeżeli tak, są generowane śmieci, które wypadają ze zniszczonego obiektu. Na samym końcu usuwane są obiekty za lewą krawędzią. Draw World public void Tutaj jest wszystko odrysowywane. Na początku rysowane jest tło z uwzględnieniem przesunięcia względem kamery. W zależności od wysokości, zmieniają się tła. Następnie rysowane są wszystkie obiekty, a potem rozwiązania zagadek w grze. Na końcu rysowane są informacje w prawym górnym rogu. Są to: Prędkość, wysokość statku, którym się poruszamy; liczba punktów, poziom, pokonany dystans oraz liczba klatek na

sekundę. Update Object public void Jest to metoda wywoływana przez World.Update dla każdego z obiektów. Jest ona odpowiedzialna za symulację grawitacji (jeżeli dla danego obiektu jest ona włączona), następnie za sprawdzenie, czy dany obiekt koliduje z innym obiektem. Jeżeli tak, ma się odbyć odjęcie danej liczby punktów wytrzymałości, która się zmienia w zależności od prędkości zderzenia a także mas zderzanych obiektów. Jeżeli obiektowi zostanie więcej niż 0 punktów wytrzymałości po zderzeniu, odbywa się tu również symulacja zderzenia. Obiekty odbiją się od siebie w zależności od prędkości mas, położenia względem siebie i elastyczności obiektów.

4. Obsługa programu Po uruchomieniu gry, zostanie zaprezentowany następujący obraz: Jest to krótka instrukcja, która mówi nam jak grać. Dodatkowo, w tle jest renderowany statek kosmiczny lecący nad ziemią: Aby przejść do gry, należy wcisnąć strzałkę w górę. To pozwoli latać samolotem. Samolot będzie cały czas poruszać się w lewo. Będzie on przyciągany przez siłę grawitacji w dół. Żeby zapobiec ciągłemu spadaniu i rozbiciu się o ziemię, należy wciśnąć strzałkę w górę, co włączy silniki i pozwoli poruszać się statkowi w górę. W grze należy unikać różnorakich obiektów, które mogą uszkodzić statek, a także należy zbierać punkty (są one pokazane w formie gwiazdek z odpowiednią ilością punktów). Zebranie gwiazdki, nie uszkadza pojazdu oraz daje największe korzyści punktowe. Z kolei rozbicie obiektu, daje

bardzo małe korzyści punktowe, a także uszkadza pojazd. Już samo zderzenie się z innym obiektem (nie koniecznie rozbicie go), uszkadza nasz pojazd. W grze należy także proste zagadki matematyczne. Zagadki pojawiają się w lewym górnym rogu. Należy wlecieć w prawidłowe rozwiązanie. Daje to 500 punktów oraz nową zagadkę. Jeżeli jednak zostanie zebrany zły wynik, zostaje odjęte 500 punktów. Przedstawione wyżej elementy w grze wyglądają w praktyce tak: Po przeleceniu odpowiedniego dystansu (jest to dokładnie 20.000 jednostek), następuje zmiana poziomu. Zwiększa się poziom trudności zagadek, a także pojawiają się nowe obiekty, których należy unikać. Również zostaje zwiększona prędkość statku, co dodatkowo utrudnia rozgrywkę. Im wyżej lecimy statkiem, tym jest trudniej. Z tego względu, że obiekty tam są cięższe i bardziej wytrzymalsze. Przy zderzeniu z nimi, nasz statek zostaje bardziej uszkodzony, niż przy zderzeniu z obiektami, które są niżej. Lecenie na

takich wysokościach, wynagradzają nam jednak nagrody punktowe w postaci gwiazdek, które mogą tu sięgać nawet 5.000 punktów. Na wyższych wysokościach, gra wygląda tak:

Grę od góry ogranica jednak planeta mars: Gdy przyjdziemy wszystkie poziomy, bądź rozbijemy kompletnie statek, gra się zakończy, pojawi się komunikat:

Oraz pojawi się ekran końcowy gry:

5. Podsumowanie Dzięki bibliotece XNA, bardzo dobrze można zaprojektować i zrealizować projekt gry komputerowej. Jej obsługa jest intuicyjna i szybka, jest naprawdę prosta. Umożliwia ona realizację projektu w połączeniu z językiem C#. Biblioteka ta jest bardzo ściśle zintegrowana ze środowiskiem Visual Studio. Dodatkowo, udostępnia predefiniowane, łatwe do rozbudowania projekty. W dodatku, oprócz tego, że udostępnia i ułatwia możliwość tworzenia gier lub innych programów w dwóch wymiarach, daje nam dobre narzędzia do tworzenia grafiki trójwymiarowej. Jeżeli chodzi o wrażenia z pracy z biblioteką podczas realizacji tego projektu inżynierskiego, to nie napotkano na żadne problemy.

6. Bibliografia 1. MSDN http://msdn.microsoft.com/pl-pl/default 2. Kurs C# - Daniel Dusioski http://www.toya.net.pl/~daniel_d/csharp/ 3. Kurs XNA http://www.xnadevelopment.com/tutorials.shtml