libgdx alapú program létrehozása, kép importálása, mozgatása libgdx alapok Android játékfejlesztés Soós András



Hasonló dokumentumok
libgdx alapok, első alkalmazás

libgdx Android Studio alatt

Alap számológép alkalmazás

1 Újdonságok a 3D szerkesztő módban

1. mérés - LabView 1

TomTom Bridge Referencia útmutató

Az anyagdefiníciók szerepe és használata az Architectural Desktop programban

Óraterv Iskolába járás Feladatlap

E6 laboratóriumi mérés Fizikai Tanszék

Vásárhelyi Őszi Tárlat Jelentkezési rendszer. Felhasználói útmutató v1.1

ANDROID 2.3 TÁBLAGÉP KEZELÉSI ÚTMUTATÓ

Nappali képzés: Számítógéppel segített tervezés szerkesztésben közreműködött: Zobor Bence Kiegészítő- levelező képzés: Számítástechnika 2.

Albacomp RI Rendszerintegrációs Kft Székesfehérvár, Mártírok útja 9.

MOSAIC Bér exportálása az ABEVJava programba

Fehér Krisztián. Navigációs szoftverek fejlesztése Androidra

1. lecke: Nappali tervezés

HomeManager - leírás. advix software solutions.

Felszerelési és kezelési utasítás SPRAYDOS

A program els indítása Mikor el ször futtatjuk a nyilvántartó programot, az alábbi párbeszédablakkal találkozunk.

Windows alapismeretek

Rain EVO 1-4 Elemes vezérlő automatika

Jelalakvizsgálat oszcilloszkóppal

3. melléklet az 5/2009. (III.31.) IRM rendelethez

Felhasználói kézikönyv. TB6560HQV3-T3 (V type) 3 tengelyes léptetőmotor vezérlő

Fehér Krisztián Bártfai Barnabás. Android kézikönyv avagy okostelefonok kezelése laikusoknak

ARCHLine.XP Windows. Újdonságok. Felhasználói kézikönyv. ARCHLine.XP 2009 Újdonságok

DOCSTAMP FELHASZNÁLÓI DOKUMENTÁCIÓ A DOCSTAMP DOKUMENTUM KEZELŐ RENDSZERHEZ április 10. v1.5

SupOrt. talpfelvétel készítő program felhasználói leírás v3.1

Beállítások módosítása

Java felhasználói felület

Ismétlődő műveletek elvégzésének automatizálása

LEGO robotok. IV. rész

mynct v0.0.1 Maró verzió Kezelési leírás

NODE 1.1 és NODE 2.1

WINDOWS ALAPISMERETEK

Symbol P360/P460 Felhasználói kézikönyv v 1.0

3. gyakorlat. 1/7. oldal file: T:\Gyak-ArchiCAD19\EpInf3_gyak_19_doc\Gyak3_Ar.doc Utolsó módosítás: :57:26

Felhasználói kézikönyv

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

Darts - Krikett Projekt feladat specifikáció

14.2. OpenGL 3D: Mozgás a modellben

Cisco Unified Communications Manager Assistant Felhasználói kézikönyv a Cisco Unified Communications Manager 6.0 rendszerhez

1. Prestigio MultiPad 2. Tápadapter 3. Hordozótok 4. USB-kábel 5. Rövid használati útmutató 6. Garancialevél 7. Jogi és biztonsági közlemény

4. MODUL TÁBLÁZATKEZELÉS. A vizsgázónak önállóan kell elindítania a táblázatkezelő alkalmazást, majd a munka végeztével be kell zárnia azt.

CodeBlocks installálási segédlet

Processzor: Operációs rendszer: Operációs memória: Kijelző: Flash memóriabővítő:

Android alapok. Android játékfejlesztés

Mérnöki létesítmények 3D-s modellje

Egy egyszerű ütemezési probléma megoldásának tanulságai

Egyszerű programozási tételek

INFORMATIKAI ALAPISMERETEK

III. SZAKASZ: ELJÁRÁS III.1) Adminisztratív információk III.1.1) Az ajánlatkérő által az aktához rendelt hivatkozási szám (adott esetben)

QEMU beüzemelése és részletes ismertető

Bevezetés. A WebAccess használatának bemutatása előtt néhány új funkció felsorolása következik:

ismerd meg! A PC vagyis a személyi számítógép XIX. rész A szkenner

Kezelési leírás Agilent MSO 7104B

Z4Mplus/Z6Mplus/R4Mplus Rövid felhasználói útmutató

/

FELHASZNÁLÓI KÉZIKÖNYV

800 Series lélegeztetőgépek

Tartalom Amit a feliratozógépről tudni érdemes...21 Az első lépések...21 Beál ítások gomb...22 A feliratozógép részletes bemutatása...

vezérlő és multimédia rendszer

Használati útmutató. Xperia Z C6603/C6602

Felhasználói kézikönyv

Szerzői jog. Arty A3 1

Lingua FX Telefon kihangosító készülék. Telepítési útmutató

F sorozatú tömegmérő mérlegek F-200

Felhasználói kézikönyv

SUBUS FEJES SZILVESZTER DR. PINTÉR RÓBERT

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

WQMobile 1.0 kezelési útmutató

NMT (D) MAX (C) Beépítési és kezelési kézikönyv. változat a v6 dokumentum alapján. 1 / 15 Tel.: 1/ Fax: 1/

Mikrohullámok vizsgálata. x o

2. ábra Funkcionál generátor

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

Felhasználói útmutató

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

Az Ön kézikönyve SONY ERICSSON XPERIA GO

Zsibvásár termék importáló Tartalomjegyzék

2048 3D. Csapatnév: kurkomisi. Név: Kurkó Mihály-Zsolt. Elérhetőség: telefon: Iskola: Márton Áron Gimnázium

1. ábra. Néhány tipikus ikon képe

Szálkezelés Rajzolás képernyőre Bevitel kezelése - Érintő képernyő - Billentyűzet

Új év nyitás ÉV NYITÁS ELŐTT KÉSZÍTSÜNK BIZTONSÁGI MENTÉST A CIN MAPPÁTÓL!

Példaprogramok Android alá (Lista, mentés, visszatöltés, pattogó android figura) Android alapok. Android játékfejlesztés.

Vigilec Mono. Egyfázisú szivattyú vezérlő és védelmi doboz. I. A csavarok eltávolítása után csúsztassuk felfelé az előlapot a felső állásba (A ábra)

Digitális Lakatfogós Multiméter AX-3550

Főoldal Kapcsolat Honlaptérkép Súgó. Általános keresés: OK Általános keresés. Kiválasztott lapszám Legutolsó 5 lapszám. 2011/66.

Alcor Zest Q813IS Táblagép. Kezelési útmutató

Használati útmutató. Biztonsági előírások. Tartalom. Szimbólumok. A műszer felhasználási célja. Tiltott használat. magyar. Biztonsági előírások

TomTom Rider Kezelési kézikönyv 16.1

II. év. Adatbázisok és számítógépek programozása

Szoftver-ergonómiára vonatkozó szabvány, avagy ISO 9241

(11) Lajstromszám: E (13) T2 EURÓPAI SZABADALOM SZÖVEGÉNEK FORDÍTÁSA. (51) Int. Cl.: A61F 2/06 ( ) 7. ábra

Projekt: Költséghely: Oldalszám: 1/10 TARTALOM

TMC-212 automata öntözőrendszer vezérlő

Használati utasítás. Görgős fékvizsgáló próbapad

ISE makró (saját alkatrész) készítése

SM-T810. Felhasználói kézikönyv

I. fejezet Hello Világ! Programozás tankönyv. II. Fejezet. Helló Világ! avagy a Miért?-ek elkezdődnek

MUNKAANYAG. Kovács Levente. Fóliázógép, árazógép, árleolvasó és mérleg használata. A követelménymodul megnevezése:

Átírás:

libgdx alapú program létrehozása, kép importálása, mozgatása libgdx alapok Android játékfejlesztés Soós András

Tartalom 1. Az első lépések... 1 2. Fontos beállítások a kezdés előtt... 3 3. A programkód... 4 4. Kép importálása, megjelenítése... 5 5. Kép mozgatása... 7

1. Az első lépések Előzetesen létrehoztuk a projektünket, minimum 3 package-t kell látnunk az Eclipse-ben, az első, aminek a nevében csak a projektünk neve vagy a projektnév-core szerepel, ebben fog helyet kapni a Java nyelven írt programkódunk. A projeknév-android package az androidos futtatáshoz szükséges, a projektnév-desktop pedig Jar fájlként futtatja a projektet. 1. ábra: Projekt beimportálva

2. Fontos beállítások a kezdés előtt Az android és desktop package-ben is fontos beállítani a OpenGL 2.0-t. Ezeken belül mindkét esetben az src-ben lévő osztályban igaz értéket adunk a cfg.usegl20 = false; sornak, ahogy a képeken is látszik: 2. ábra: Android OpenGL 3. ábra: Desktop OpenGL

A desktop-nál még tudjuk módosítani a felbontás nagyságát, ugyanez az adroidnál a készülék képernyőjétől fog függni. 3. A programkód A projekt létrehozásakor kapunk egy Hello World-höz hasonló programot amely egy képet jelenít meg amin rövid leírást/reklámot kapunk a libgdx-ről. Ennek nagy részére nincs szükségünk. A függvényeket megtartjuk, de azokon belül csak a render és create első két-két sorát hagyjuk meg. Ezen kívül az importoknál az import com.badlogic.gdx.graphics.gl10; sort átírjuk import com.badlogic.gdx.graphics.gl20;-ra. Később fontos lesz, hogy az OpenGl2.0-ás verzióját használjuk. Ezen kívül a render függvény második sorát (Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);) írjuk át ugyanilyen módon. 4. ábra: Programkód a felesleges sorok törlése után A create első két sora lekéri nekünk két változóba a kijelző magasságát és szélességét. A render első két sora egy fehér hátteret ad a megjelenített tartalomnak. Fontos tudni, hogy a create egyszer hívódik meg az osztály példányosításakor, a render pedig az előre beállított időközönként fut le, ezzel frissítjük a kijelzőt. A dispose-t pedig akkor hívjuk meg, amikor fel szeretnénk szabadítani a használt erőforrásokat.

4. Kép importálása, megjelenítése Az első feladatunk egy Texture létrehozása, ez fogja tartalmazni a képet, amelyet importálunk, szükségünk van még egy Sprite-ra, amely szintén a képet tartalmazza majd megjeleníthető és módosítható formában, ezen kívül szükségünk van a megjelenítéshez egy SpriteBatch-ra. SpriteBatch batch; Texture labda; Sprite labdasprite; A create függvényben példányosítjuk a változóinkat, és importáljuk a képet, amelyet előzetesen a projektnévandroid mappa assets almappájába helyeztünk. batch = new SpriteBatch(); labda = new Texture(Gdx.files.internal("labda.png")); labdasprite = new Sprite(labda); labdasprite.setbounds(w/2-100/2, h/2-100/2, 100, 100); Látható hogy a batch-t egyszerűen példányosítjuk. A labda nevű Texture változóba importáljuk a labda.png nevű képet, ami egy focilabdát ábrázol. A sprite-ot már ezzel a változóval példányosítjuk. Ezután a setbounds függvénnyel beállítjuk a méretét és a helyét. Az első két változó az x és y tengelyen is középre helyezi a képet, a második két változó a szélességét és a magasságát határozza meg a sprite-nak. Ezután már csak annyi a dolgunk, hogy a render-ben megjelenítjük a képet. batch.begin(); labdasprite.draw(batch); batch.end(); Ezt a batch segítségével a fent látható módon valósítjuk meg.

5. ábra: Végleges programkód 6. ábra: Lefuttatva desktop módban

5. Kép mozgatása Létrehozunk két float változót a sprite helyének tárolására. Legyen: float x, y; A create-en belül megadjuk neki a kezdőértéket, ez: x=w/2-100/2; y=h/2-100/2; Erre a pontra helyeztük korábban a képet. Ezután a renderen belül létrehozunk valamilyen megoldással egy input lehetőséget, mivel a legegyszerűbb desktop módban tesztelni a programot, és így lehetőségünk van billentyűzettel adatokat bevinni, irányítsuk a WASD gombokkal a képet. Ehhez a következő függvényre van szükségünk: if(gdx.input.iskeypressed(keys.w)){ y++; if(gdx.input.iskeypressed(keys.a)){ x--; if(gdx.input.iskeypressed(keys.s)){ y--; if(gdx.input.iskeypressed(keys.d)){ x++; Látható, hogy ha lenyomva tartjuk a négy gomb közül az egyiket, akkor a sprite x és y koordinátái változnak, így fel, le, jobbra és balra tud haladni a kijelzőn. A változáshoz szükséges még, hogy a változókat összekapcsoljuk a sprite-al, hisz eddig konstanst értéket állítottunk be a setbounds-al. A render függvénybe is teszünk egy setbounds függvényt a következő módon: labdasprite.setbounds(x, y, 100, 100); Ezzel készen is vagyunk, a gombok segítségével tudjuk mozgatni a képet. További lehetőségek egyike, amire majd egy tényleges androidot futtató eszközön is szükségünk lesz, a kijelzőn történő érintés helyét értelmezi: if(gdx.input.istouched()){ x=gdx.input.getx(); y=h-gdx.input.gety(); else{ x=0f; y=0f; Ezzel a megoldással egy érintés helyét tudjuk lekérdezni, amennyiben nincs érintés az adott időben, a változók értéke 0 lesz.