Írjon játék android (tag rulez), programozás android, java - a legelső

Visszajövök, hogy a téma játékok Android. Nem ugyanaz vagyunk a helyes itt írta motor, ez olyan dicstelen vége all-tac-toe. Itt nemrég olvastam néhány fórum felhasználói üzenet, amely megkérdezi, lépésről lépésre folyamat létrehozása pyatnashek festék.







Nos, úgy gondoltam, hogy a tag - ez egy jó dolog. Tizenöt a helyes dolog. Különösen azért, mert a címke - ez is egy egyszerű ügy, és a kezdő android - programozó - a legtöbb azt.

Kezdjük azzal, tanulmányozza a tárgykörben. A játéktér egy 4x4 négyzet, amelyen a chips 15 számozott 1-15 és egy üres területen. Ne feltalálni a kereket, és elképzelni játéktér egy kétdimenziós tömböt. Lépni, akkor mozgatni bármilyen chip számát az oldalán egy üres mező. Az a játékos nyer, ha az összes zsetont vannak számozva 1-15 lefelé, balról jobbra, és a jobb alsó sarokban ingyenes.

És így, itt van egy osztály, amely megvalósítja az összes logikai eleme a játék:

Mindegyik módszert részletesen leírtuk, és azt hiszem, nem lesz probléma, hogy megértsük, mi az, ami.

De a következő osztályba felelős játékos interakció és a játékok, valamint a kijelző különböző UI komponensek felhasználásával a motorom (amelyek figyelembe a legújabb verziót itt ezen a linken).

Azt hiszem, az emberek, akik nem lusta itt olvasható arról, hogy valójában ez képviseli a motor elvileg nincs gond azzal a felfogással, hogy mi történik ebben az osztályban.

Valójában ez a két osztály, és egy teljesen megvalósult játék tag :)!

Amint helyesen megjegyezte Paul, nem minden esélye adott játék lehet nyerni.







Ezért úgy döntöttem, hogy helyes kis osztály game15, hogy ilyen problémák nem merülnek fel. Ahelyett, hogy ellenőrizze a generált játék terén, hogy a lehetőséget a győzelemre, úgy döntöttem, hogy egy kicsit könnyebb. Létrehoz egy mezőt a helyzetben, amikor befejeződött, és akkor véletlenszerűen összegabalyodni.

Itt látható az osztály kódot ide:

Azt hiszem, ez sokkal érdekesebb 🙂

UPD: Ez egy kész projekt Android mEngine

Nem tetszik? Hasznos? Megosztani!

Köszönjük ilyen csodálatos órákat, nekem nagyon hasznos ismerkedés a fejlesztés alatt Android!
És van a fejlődésük során volt néhány kérdés:
1) Ha az újrarajzolás a jelenetet, azt kell átszámítani különböző paramétereket, mint például a tárgyak mozgása, indítsa újra a sprite, jól és általában végezni minden olyan intézkedés, amely jobban teljesítenek (az ilyen műveletek)? Értem rendesen, meg kell élni egy külön funkció mDrawerTask osztály run () metódus végrehajtása előtt a vásznon = holder.lockCanvas ();? És hatással lesz-e a sebességet a renderelés a jelenetet, ha az összes ilyen számítások múlva kerül sor a vásznon = holder.lockCanvas ();?
2) és egy furcsa pillanat volt számomra, amikor létrehoz egy felület, azt tervezzük, a feladat időzítő, például ha van egy cél FPS van beállítva, hogy 25 képkocka, akkor a feladat fut minden 40 ms:
fiókos = új mDrawerTask (this.getHolder (), this.scene);
t.scheduleAtFixedRate (fiók, 0, mSettings.frameInterval);
Tudomásul veszem, hogy ha az Android rendszer elvégzi a renderelés a jelenet 40 ms és újraszámítások leképezés előtt, akkor minden rendben lesz, a jelenet meg fog változni a tervek szerint. De ha ez az idő nem lehet kihagyni a rajz kerül sor? teljes ciklus felhívni animált sprite lassú? Feladatok felgyülemlik a végrehajtás verem, egyik a másik után, míg végül mindannyian nem teljesül? Ha igen, mit kell tenni, hogy ezt elkerülni?
Köszönöm a tippeket 🙂

Az a tény, hogy a festmény, függetlenül attól, hogy bármit - egy külön téma. Ezért logikus, hogy a különböző számítások egy külön téma. Tehát, ha azt szeretnénk, hogy újraszámolja az új helyzetben, mint sprite, és bármilyen okból nincs ideje, akkor a Sprite egyébként teszi a régi helyén. Ez a megközelítés a pluses és hátrányával. De úgy tűnik, hogy nekem a leginkább elfogadható a játék nem nagyon függ a számításokat.