WPF Candy Crush - elemek esésének animálása
2016-05-09T18:10:29+02:00
2016-05-20T19:03:50+02:00
2022-08-10T04:00:32+02:00
haxxi
Sziasztok

Egy Candy Crushoz elég hasonló játékot írok WPF-ben, amelynél megakadtam egy kicsit. Van egy leírás amit követek, azonban ez a Unity Engine-hez készült, nekem viszont WPF-ben kell abszolválnom a feladatot, ennek a linkje: Match-3 Game in Unity 
Megvannak már az elemeim, hogyan léphet, hogy nézzen ki a pálya stb, illetve milyen függvényeket használhatok, de a fő kezelőt most próbálom megcsinálni. Az lenne a kérdésem, hogy milyen módon tudnám megoldani azt, ha egy elemet összehúzok egy másikkal, akkor a kieső elemek helyére valamilyen módon beperegjen a felette lévők? Tehát valami olyan függvényre lenne szükségem, amely az üres helyre mozgatja látszólag a felette lévő elemet.
A tábla 9X9-es, minden ilyen elemnek van típusa, bónusztípusa, sor illetve oszlop változója, és ezeket egy 2D-s tömbben tárolom. Ha tudtok valamilyen módon segíteni nekem, annak nagyon tudnék örülni
Előre is köszönöm.
Mutasd a teljes hozzászólást!
Ha 2D tömbben tárolod az elemeket, akkor miért van sor, illetve oszlop változója az elemeknek külön, hiszem tudsz rájuk hivatkozni tömbindexekkel?

Feltételezve, hogy tudod honnan törölted az adott elemet. //oszlopSzam, sorSzam


palyaElem palyaTomb[9][9]; //leírás alapján és értelmezésem szerint így tárolod az adatokat

void elemekMozgatasa(int oszlopSzam,int sorSzam,palyaElem (&palyaTomb)[9][9]){
    for(int i = sorSzam; i > 0; --i){
        palyaTomb[oszlopSzam] = palyaTomb[oszlopSzam][i-1]
    }
}

elemekMozgatasa(4,6,palyaTomb);



Ezután már csak a palyaElem[oszlopSzam][0] elem helyére kell egy véletlenszerű elemet generálnod.

A függvény az adott oszlopban az adott sor 'fölötti' elemeket egyel 'lejjebb csúsztatja';

Maga az algoritmus szerintem ennyi lenne.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd