LibGDX graafika

LibGDX Graphics moodul annab infot seadme ekraani või rakenduse akna kohta ning pakub ligipääsu OpenGL kontekstile.

Graafikamooduli kaudu saab teada:

  • ekraani suuruse (getWidth(), getHeight())

  • pikslite tiheduse (dpi)

  • akna värskendussageduse (fps)

  • viimase kaadri kestuse (getDeltaTime())

  • täisekraani ja akna seadistused

  • kaadripuhvri seadistused (värvisügavus, stencil, depth buffer)

Näidisprojekt

Repo

Näidisprojekt on lihtne rakendus, kus ruut liigub aknas, põrkub servadest tagasi ja muudab seejuures värvi. Selleks kasutatakse mõnda põhifunktsiooni LibGDX Graphics moodulist. Kood on kommenteeritud eesti- ja inglise keeles.

Näidisprojekti MyGdxGame sisaldab 3 klassi. Klassis MyGdxGame on loodud instants objektist Ruut. See ruut hakkab edaspidi ringi põrkuma rakenduse aknas. Ruudu konstruktoris on argumendina sisestatud Ruudu esialgne asukoht Vector2 kujul.

Ruut klassi loogika

Ruut klass sisaldab loogikat ruudu liikumise, põrkumise ja värvi muutmise jaoks. Meetod Uuenda() Muudab ruudu positsiooni nii, et selle liikumise kiirus ei sõltu kaadri renderdamise kiirusest (inglise keelse fps). Selleks kasutab see Gdx.graphics meetodit getDeltaTime().

positsioon += kiirus * Gdx.graphics.getDeltaTime();

getDeltaTime() tagastab möödunud aja viimase kaadri renderdamisest, seega kui ruudu positsiooni muutmisel selle kiirus korrutada läbi getDeltaTime() tulemusega, liigub ruut alati sama keskmise kiirusega, olenemata kaadrite renderdamise kiirusest.

Põrkumine akna servadega

Sama Uuenda() meetod kontrollib, kas ruut on jõudnud akna servani. Selleks kasutatakse:

Neid meetodeid kasutame ruudu ja akna laiuse ja kõrguse leidmiseks. Kasutades nendest meetoditest saadud infot saame ruudu liikumise piirata akna raamesse.

Värvi muutmine

Ruudu liikumise suuna muutmiseks peale akna serva vastu põrkamist ja ruudu värvi muutmiseks kasutame meetodit Porka(int suund). See meetod kasutab gdx.graphics Color() klassi, mis võimaldab:

  • kasutada sisseehitatud värve (nt Color.GREEN)

  • või luua värvi HEX-koodist: Color.valueOf("#00FF00")

Värvi muutus annab visuaalse tagasiside igast põrkest.