Ahoj,
rád bych zkusil naprogramovat v Javě nějakou hru a rozhodl jsem se pro tetris, řekl bych, že vše probíhá tak nějak bez problému. Snažím se použít návrhový vzor MVC, mám objekt hrací plocha kde je pole booleanů, která značí jestli tam blok je nebo není a pak mám objekt aktuálně padající blok, který si pamatuje info o své poloze a velikosti. Nějak mám pořešené i zavolání funkce aby se blok posunul nebo se udělal nový, jen jediný problém který se mi zde vyskytuje je, že mám funkci ve které zjišťuji zda mohu blok posunout, pokud ano, vracím true, pokud ne, vracím false, tato metoda mi však nefunguje. Na konci ji přikládám. Mohl bych vás poprosit o pomoc, co v ní mám špatně nebo mě nasměrovat cestou jak ji napsat jinak?
Takto napsaná vykazuje velice zvláštní chování, někdy blok propadne přes jiný, jindy se naopak zastaví o spoustu řádků nad...
Předem děkuji.
public boolean canShift()
{
//Ověří zda blok nehodlá překročit hranici hrací plochy
if (actualHraciBlok.getY() + actualHraciBlok.getHeight() == hraciPlocha.getHeight())
{
return false;
}
//Ověřuje zda blok nehodlá překrýt jiný blok
for (int x = 0; x < actualHraciBlok.getWidth(); x++)
{
if (actualHraciBlok.getPolicko(x, actualHraciBlok.getHeight() - 1)){
if (hraciPlocha.getPolicko(x, actualHraciBlok.getY() + actualHraciBlok.getHeight()))
{
return false;
}
}
else
{
if (actualHraciBlok.getHeight() > 1 && actualHraciBlok.getPolicko(x, actualHraciBlok.getHeight() - 2)) {
if (hraciPlocha.getPolicko(x, actualHraciBlok.getY() + actualHraciBlok.getHeight()-1))
{
return false;
}
}
}
}
return true;
}