2. fejezet. Mi az a Framework? Az ábrán látszik, hogy miért jó ez az egész.

Hasonló dokumentumok
Játékfejlesztés a Windows Phone 7 erejével

1. Bevezetés 1. Köszönetnyilvánítás A számítógépes játékfejlesztésről 3

Mesh generálás. IványiPéter

Egyszerű témának tűnhet, de sok buktatót rejt a megfelelő inputkezelés egy program fejlesztése során.

Android alapok. Android játékfejlesztés

RIEL Elektronikai Kft v1.0

Számítógépes Graka - 4. Gyak

Webes alkalmazások fejlesztése

Ablak és ablakműveletek

Matematika (mesterképzés)

OpenVPN kliens telepítése a RITEK Zrt. szervereinek eléréséhez.

KARAKTERFELISMERÉS AZ EVASYS-BEN

A MODERN JÁTÉKFEJLESZTÉS

Elemi alkalmazások fejlesztése IV. Adatbázis-kezelés ActiveX vezérlıkkel - 1

Prezentáció, Prezentáció elkészítése. Nézetek

17. előadás: Vektorok a térben

Cross platform játékmotor + szerkesztő Támogatott platformok

Színes kültéri. Reklámtábla installáció

Telepítési útmutató a Solid Edge ST7-es verziójához Solid Edge

OpenGL és a mátrixok

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

USB2.0 HD AV digitalizáló Használati útmutató

ELSŐ LÉPÉSEK A SZÁMÍTÓGÉPEK RODALMÁBA AMIT A SZÁMÍTÓGÉPEKRŐL TUDNI ÉRDEMES

eseményvezérelt megoldások Vizuális programozás 5. előadás

Szoftvertechnolo gia 7. gyakorlat

Tudnivalók az NYMESEK vezeték nélküli hálózatáról. Beállítási útmutató WIFI felhasználóink számára

Java és web programozás

Navigációs GPS adatok kezelése QGIS programmal (1.4 verzió) Összeállította dr. Siki Zoltán

Internetes böngésző fejlesztése a mobil OO világban

libgdx alapok, első alkalmazás

munkafüzet open eseményéhez

Microsoft SQL Server telepítése

PTE-PROXY VPN használata, könyvtári adatbázisok elérhetősége távolról

A Web Services protokoll használata hálózati szkennelésre (Windows Vista SP2 vagy újabb verzió, valamint Windows 7 és Windows 8 esetén)

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Mechatronika segédlet 3. gyakorlat

Nokia N9 - MeeGo Harmattan bemutatkozik

Hardver és szoftver követelmények

Delphi programozás I.

CMS videó megjelenítő szoftver használata

Információ megjelenítés Számítógépes ábrázolás. Dr. Iványi Péter

Miről lesz szó? Setup Project készítése. Tulajdonságok. 1. Készítsünk egy setup project alkalmazást egy már elkészített, lefordított programhoz.

Útmutató az OKM 2007 FIT-jelentés telepítéséhez

Hogyan kell 3D tartalmat megtekinteni egy BenQ kivetítőn? Minimális rendszerkövetelmények 3D tartalom lejátszásához BenQ kivetítőn:

VisualBaker Telepítési útmutató

Windows 8.1 frissítés, részletes útmutató

A Java EE 5 plattform

Tisztelt Ügyfelünk. Az internet beállítások kinézete. Itt a Speciális fülre kell kattintani.

Thermo1 Graph. Felhasználói segédlet

Visual Studio 2012 és MSDN. Csomagok és licencelés

KELER KID Internetwork System (KIS)

Telenor Webiroda. Kezdő lépések

Digitális aláíró program telepítése az ERA rendszeren

Téradatbázisok használata QGIS-ből A DB kezelő modul 2.2 verzió

Alapként a Szabálykönyv szolgál és minden szabálypont illusztrált videoklipekkel, összekapcsolva a megfelelő szöveges állományokkal.

Robotino programozása v2.3.2

HF-DVR H.264 Hálózati Rögzítő. Felhasználói kézikönyv

1. DVNAV letöltése és telepítése

Informatika érettségi vizsga

JÁTÉKPROGRAMOK FEJLESZTÉSE

Operációs rendszerek. Az X Window rendszer

Objektumok és osztályok. Az objektumorientált programozás alapjai. Rajzolás tollal, festés ecsettel. A koordinátarendszer

KIRA. KIRA rendszer. Telepítési útmutató v1

Win 8 változatok. 2. sz. melléklet felnottkepzes@gmail.com. Töltse ki az előzetes tudásszint felmérő dolgozatot!

MVC. Model View Controller

Entity Framework alapú adatbáziselérés

OOP. Alapelvek Elek Tibor

Telepítési Kézikönyv

Alcatel PCSuite 1 installálása. Mielőtt elkezdenénk installálni a PCSuit programot bizonyosodjunk meg a következőkről:

Kép mozaik és piramis készítése LANDSAT űrfelvételből dr. Siki Zoltán 2011

Objektumorientált programozás. Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

Mathematica automatikusan dolgozik nagy pontossággal, például 3 a 100-dik hatványon egy szám 48 tizedes jeggyel:

Tegyünk nagyszerű dolgokat!

Commodore 64. Felhasználói utasítás. Készítette: Mészáros Árpád

Webshop készítése ASP.NET 3.5 ben I.

iphone és Android két jó barát...

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, Quantum GIS program alkalmazásával Útmutató 2010.

A legfontosabb DOS parancsok

A Microsoft Visual Studio 2005 fejlesztőkörnyezet

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

A Clipper evolúciója

.NET Microsoft.Net Framework

1.1 Szakdolgozat témája A Program célja A használt technológiák ismertetése A program megtervezése...

KOVÁCS BÉLA, MATEMATIKA I.

Procontrol CDP-GDP Ethernet

Tartalomjegyzék. Bevezetés. 1. A.NET 3.5-keretrendszer 1. A korszerű alkalmazások felépítésének kihívásai... 2

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

Iman 3.0 szoftverdokumentáció

QGIS gyakorló. --tulajdonságok--stílus fül--széthúzás a terjedelemre).

Tanúsítványkérelem készítése, tanúsítvány telepítése Microsoft Internet Information szerveren

SAMSUNG SSM-8000 szoftvercsomag

Máté: Számítógépes grafika alapjai

1. kép. A Stílus beállítása; új színskála megadása.

Beágyazott rendszerek fejlesztése laboratórium DSP fejlesztési technológiák

Információs technológiák 2. Gy: CSS, JS alapok

Informatika. 3. Az informatika felhasználási területei és gazdasági hatásai

Stunnel leírás. Az stunnel programot a következő módon telepíthetjük Windows környezetben:

Java és web programozás

Átírás:

2. fejezet Mi az a Framework? Az ábrán látszik, hogy miért jó ez az egész. Az Framework (keretrendszer) egy olyan halmazt jelent, aminek az elmei egy adott környezetben leggyakrabban használt hasznos eszközök összessége. Ilyen még pl a.net, illetve a Java EE is.

Az XNA Framework Kicsit vissza kell mennünk az időben ahhoz, hogy egyszerűbben átláthassuk a játékfejlesztés fejlődését. A DOS idejében, vagy még az előtt a programozók kénytelenek voltak alacsony szintű kódot írni, és olyan problémákat megoldani, mint a videokártya,hangkártya,input eszközök kezelése. Egy amatőr fejlesztő számára ez sokkal bonyolultabb feladatot jelent, mintha csak simán a játéklogika felépítésével kéne töltene az időt. A másik problémája ennek a dolognak, hogy különböző hardware esetén újra kell írnunk a kódot, vagy nagymértékben módosítanunk ahhoz, hogy fusson, amit irtunk. Cserébe, ha jól dolgoztunk, egy valamivel gyorsabban futó program volt a munka eredménye.(de ez nem minden esetben igaz) A probléma egyik lehetséges megoldását az OpenGL, a másikat pedig a DirectX nyújtotta. Mikor a Windows 95 megjelent, akkor merült fel először egy ilyen megoldás igénye. Ekkor az OpenGL már régóta piacon volt,de csak a fentebb említett problémákra nyújtott egyszerű megoldást. Az csomag első megjelent verziót Windows Game SDK névre keresztelték, és később változtatták csak a nevét DirectX re. Persze túl tökéletes lenne a világ, ha minden elsőre működne, és az új rendszerek is az elvárások szerint teljesítenének. A legtöbb programozó az első verziókat nagyon nem kedvelte, de folyamatosan javult az API, és egyre többen kezdték használni, felfedezve az előnyeit. Először nézzük meg, milyen részei vannak a DirectX-nek. A DX több ezer API függvényt definiál, amiket az alkotók kisebb modulokra bontottak aszerint, hogy mi a feladatuk. A rendszer a Microsoft COM technológiáját alkalmazza. Ez a három betűs rövidítés a Component Object Model (COM), mely ActiveX-ként is ismert, a Microsoft által kifejlesztett technológia a komponens alapú fejlesztés támogatására. A feladata a szoftverek közti kommunikációt teszi lehetővé. Bár több platformon is megvalósították, elsősorban a Microsoft Windows operációs rendszerében használják. Az

elődje az object linking and embedding (OLE) technológia volt, ma a COM szerepét a Microsoft.NET rendszer veszi át. Fontosnak tartom itt megjegyezni, hogy a COM továbbra is használható marad, tehát nem törlik, egyszerűen csak nem fejlesztik a továbbiakban. Nézzük meg a DirectX részeit. DirectGraphics: A DX 9 verziójában egyesítették a rendszer két elemét: { DirectDraw: A kétdimenziós grafikáért felelős Direct3D: A háromdimenziós megjelenítésért felelős } DirectInput: A bemeneti eszközöket kezeli: a billenyűzetet, egeret, gamepad-ot, és minden más elképzelhető perifériát is DirectMusic: Zenelejátszás a dolga. Egy játékban például a háttérze nét a DirectMusic szolgáltatja DirectSound: Hanglejátszás és felvétel a feladata DirectPlay: A hálózati kommunikációt egyszerűsíti le. A nyolcas verzióban jelent meg DirectShow: Multimédiás anyagok megjelenítését végzi, a legtöbb lejátszó program ezt használja DirectSetup: A DirectX API összetevőinek telepítéséhez szükséges

XNA osztályok Vector2 Public Fields: X - vektor X komponense Y - vektor Y komponense Public Properties: One - egységvektor (1,1) UnitX - (1,0) UnitY - (0,1) Zero - (0,0) Public Methods: Add - Két vektor összeadás Distance - Két vektor távolsága Divide - Vektor osztása skalárral vagy vektorral Dot - Skalár szorzat Length - Vektor hossza Multiply Vektor szorzása skalárral vagy vektorral Negate Vektor negálás Normalize egységvektor Transform mátrix vagy kvaternió általi transzformálás

Vector3 Public Fields: X Y Z Public Methods: Clamp (value, min, max) Cross product jobb kezes rendszer LengthSquared hossz négyzete (ne használjunk gyökvonást, ha nem szükséges) Lerp Linear interpolation (2 vektor között) Reflect vektor tükrözése síkra Substract 2 vektor kivonása Transform vector3 transzformálás mátrixszal vagy kvaternióval GameTime Public Properties: ElapsedGameTime eltelt idő az utolsó képkocka kirajzolása óta ElapsedRealTime valójában eltelt idő IsRunningSlowly le tudjuk kérdezni, hogy lassan fut-e a játékunk TotalGameTime játékindítástól számított idő TotalRealTime játékindítástól valójában eltelt idő

2D alapok Már tudjuk, hogy mi az, amit rendelkezésünkre áll, a következő lépés az lesz, hogy elkezdjük használni. A legegyszerűbb az, ha csak két dimenzióban kell mozognunk. A legfontosabb fogalom, amit meg kell ismernünk, az a sprite. A sprite nem egy üdítő, hanem egy kép a számítógépes grafikában. Az xna-ban a sprite-ot reprezentáló objektum Texture2D néven jelenik meg. A másik fontos fogalom, az a képtér. Sokan elkövetik azt a hibát, hogy nem megfelelően gondolják át a program fejlesztésénél ezt a problémát. Ha Pc-re fejlesztek, akkor kétféle lehetőségem van. Az egyik, hogy teljes képernyős alkalmazást készítek. Ebben az esetben a képtér a képernyő felbontását jelenti. A másik eset, pedig ha egy ablakban jelenik meg a játékunk. Ekkor a képtér az ablak relatív felbontása lesz. Azért fontos, hogy relatív, mert itt megint több lehetőségünk van. Engedjük, hogy az ablak átméretezhető legyen, és vele együtt skálázzuk a játékot is, vagy beállítunk egy fix felbontást? Bármelyik lehetőséget választhatjuk. Xbox és Zune esetén viszont más a helyzet. Felbontást ugyan bármikor változtathatunk, de itt nincs lehetőség ablakban megjeleníteni a játékot, hanem a képtér a teljes kijelző lesz. Gondoljunk arra is, hogy a felhasználó lehet, hogy más felbontásban szeretné játszani a játékát, mint amiben mi fejlesztettük, tehát soha ne drótozzunk be olyan játékba fix felbontást, amit esetleg másnak is oda szeretnénk adni.

Térjünk vissza a képtérhez. Ahogy az ábrán is látható, a bal felső sarokban van az origó, és jobbra illetve lefelé nő az ( x, y ) tengely. A koordinátákat, Vector2 típusként tároljuk. Az első szám a vektor első komponense (X ), a második szám a vektor második komponense ( Y ). Mikor megadunk egy koordinátát, ahol elhelyezzük a spriteunkat ( nyilván a sprite-nak is van egy kiterjedése ), akkor az adott kép relativ koordináta rendszernek origóját jelenti. (tehát a bal felső sarkát)

Egy kis változás az eddig megszokottakhoz képest, hogy fejjel lefelé kell elképzelni a dolgokat. Feladat: Nyissunk egy új projectet.

Lehetőségünk van egy teljesen üres template-t választani, vagy pedig egy StarterKit template-t nyitunk meg, ami egy előre megírt játékot tartalmaz. Választhatunk még platformot is, de ez nekünk most annyira nem fontos, a platformok között bármikor ugrálhatunk fejlesztés közben is. Nyissunk meg egy új Windows Game Projectet. A 3.0 és 3.1 verziók között csak a video file-ok támogatása a különbség. Ha később váltani szeretnénk, nyugodtan upgradelhetjük a projectet pár kattintással. A Content Pipeline működéséről később lesz szó, most elégedjünk meg annyival, hogy nyugodtan használhatjuk különböző tartalmak betöltésére.

A Solution Explorerben tudjuk managelni a projectünket. Itt tudunk hozzáadni plusz file-okat, létrehozni egy új példányt, ha konzolra akarunk fejleszteni stb. Ezeket a lehetőségeket később fogjuk megnézni. Létrejött az új project. Kaptunk egy üres vázat a kezdéshez. A kódunk a Következőképp kezdődik. Feltételezik, hogy mindent használni szeretnénk, de persze ez nem így van. Nyugodtan szedjünk ki minden olyan using-ot, amit most nem használunk. Elég ha az marad amit használni akarunk. Ha nem akarunk ezzel foglalkozni, akkor benn is hagyhatjuk. A fordított project méretét kis mértékben fogja csak megnövelni. A következő lépés legyen a kép betöltése, és közben majd látni fogjuk, hogy ez a program váz pont úgy néz ki, mint ahogy az előadás slide-on a játékciklust láttuk. START -> Initialize -> Load Content -> (Update -> Draw )-> Unload -> Exit

Adjuk hozzá a képet, amit ki szeretnénk majd rajzolni. Lehetőleg ne jpg, hanem valami kulturált kép formátum legyen, ahol alfa csatornát is tudunk tárolni. Pl: a png tökéletes erre a célra. Alpha csatorna: az átlátszósághoz kell. (később lesz róla szó részletesen is) Ha mindent jól csináltunk, meg is jelent a hozzáadott sprite. Ha szeretnénk módosítani ennek a konkrét sprite-nak a tulajdonságait, akkor a property ablakban tudjuk módosítani.

Ha a property window alapból nem látszik,akkor kapcsoljuk be. Ezeket a billentyű kombinációkat érdemes fejben tartani, ha nem szeretnénk mindig kattintgatni. Megnézhetjük, hol is található a sprite, illetve átmásoljuk e, az Output Directoryba. Ez azért fontos, mert ha töröljük a Contentek közül a file-t, akkor a winchesterről is el fog tűnni, ha a Do not copy opció van érvényben. Ez egyébként az alap beállítás.

A következő lépés, hogy elkezdjünk kódolni. A Visual Studio szerencsére itt is a segítségünkre van. Használjuk bátran az IntelliSense-t. Nem csak kiegészíti az elkezdett szót, de egy kis leírást is kapunk róla, hogy mire jó, és hogy lehet paraméterezni ( ha lehet ). Tehát, ez egy breakpoint nevű kétdimenziós textura objektum lesz, amit az ablakunk bal felső sarkába helyezünk. Be is kell töltenünk a képet a memóriába, magától nem fog oda kerülni. Töltsük be, és hivatkozzunk rá a nevén.

Nincs más dolgunk mint kirajzolni. beállítjuk a háttér színét. kész is vagyunk. Jaigen..az eredmény: Eddig egyszerű,de hamarosan folytatjuk.