[LibGDX|Android|Java|Desktop] Premikanje ploška in trk

Za vse novince v izdelovanju iger.

[LibGDX|Android|Java|Desktop] Premikanje ploška in trk

OdgovorNapisal/-a JanNovak » Pe Feb 21, 2014 8:09 pm

Pozdravljeni,

odločil sem se da se bom poizkusil v izdelavi igre Air Hockey z knjižico libGDX, imam pa sledeč problem z osnovnim premikanjem iz zaznavo trka: (2) če se z kurzorjem počasi približam sredini igrišča vse deluje kot mora, trk lepo zazna in premikanje v smeri x se ustavi. (1) Če pa kurzor oz. miško ali na androidu prst hitro premaknem čez polje pa trk ni pravilno zaznan. Občutek imam da je miškin kurzor hitrejši od ploščka... kakšna ideja kako to osnovno težavo rešiti....

Slika

Koda: Izberi vse
...
// Tale + 50 je samo za manjši premik da lohk igralec vid plošček če ma gor prst ...
// + tole ni puck ampak bi moglo bit drgač poimenovan sam nima to veze zdej tle :)

if (!(Gdx.input.getX() + 50 > Gdx.graphics.getWidth()/2-puck.getRadious()) && !(Gdx.input.getX() + 50 < puck.getRadious()))
      {
         puck.setX(Gdx.input.getX() + 50);
      }
       puck.setY(Gdx.input.getY());

// Izris stvari...
       shape.begin(ShapeType.Filled);
       shape.setColor(0,0,1,0.2f);
       shape.arc(puck.getX(), Gdx.graphics.getHeight() - puck.getY(), puck.getRadious(), 0, 360);

...


// EDIT
Še video za boljši opis problema...

http://megaswf.com/file/2642304 (Za boljši pogled kliknite full screen)
www.androidek.si <- Moja android aplikacija :D
Uporabniški avatar
JanNovak
novinec
novinec
 
Prispevkov: 6
Pridružen: Ne Apr 29, 2012 3:41 pm
Kraj: Ljubljana

Re: [LibGDX|Android|Java|Desktop] Premikanje ploška in trk

OdgovorNapisal/-a zebi24 » To Mar 04, 2014 2:08 am

Pozdravljen Jan!

Sicer nisem še delal z libGDX, pa tudi kode si prilepil malo, ampak mogoče lahko vseeno pomagam.

Če metodo za posodabljanje pozicije kličeš glede na frame rate in ne ob eventu (premiku miške) se mi zdi normalno, da ob hitrem premiku miške posodabljanje malce zaostaja, kar pa ni problem, če narediš majhen popravek pri tvojemu if stavku:

Sedaj imaš v if-u pogoj, da se x neha posodabljati, če gre kurzor čez sredino, kar ne deluje vredu ob hitrem premiku miške čez sredino, namesto tega bi moral gledati, če je plošček čez sredino, ne glede na kurzor... torej če plošček ni čez sredino, posodabljaš x, ko pa pride do sredine, ga nehaš posodabljati. Tako se plošček ne bo ustavljal pred sredino.

Upam, da je razumljivo in da bo to rešilo tvoj problem. :)
zebi24
novinec
novinec
 
Prispevkov: 17
Pridružen: To Avg 14, 2012 10:29 pm

Re: [LibGDX|Android|Java|Desktop] Premikanje ploška in trk

OdgovorNapisal/-a JanNovak » Sr Mar 05, 2014 9:56 pm

Hvala za odgovor, vidim da sem res storil butasto napako. Sedaj deluje. Hvala...
www.androidek.si <- Moja android aplikacija :D
Uporabniški avatar
JanNovak
novinec
novinec
 
Prispevkov: 6
Pridružen: Ne Apr 29, 2012 3:41 pm
Kraj: Ljubljana


Vrni se na Začetniki

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost

cron