Avatar
Gramli
Redaktor
Avatar
Gramli:

Zdravím,
mám problém s vykreslováním obrázku na formulář. Když ho vykresluju takhle tak to nevykreslí nic -> bila obrazovka a cervene preskrknuty formular.

private void HlavniOkno_Paint(object sender, PaintEventArgs e)
{
    for (int x = 0; x < mapaSirka * polickoSirka; x += polickoSirka)
    {
        for (int y = 0; y < mapaVyska * polickoVyska; y += polickoVyska)
        {
            if(mapa[x,y] == Policka.Nic)
                g.DrawImage(EasterGame.Properties.Resources.trava, new Rectangle(x, y, polickoSirka, polickoVyska));
        }
    }
}

Ovsem, kdyz odstranim ten if:

if(mapa[x,y] == Policka.Nic)

, tak to vykresluje. Nevi nekdo v cem je problem??
Díky za odpovědi.

Odpovědět 17.4.2014 23:39
Kdo to říká ten to je...
Avatar
Zdeněk Pavlátka
Tým ITnetwork
Avatar
Odpovídá na Gramli
Zdeněk Pavlátka:

Bílý přeškrtnutý obdélník znamená, že při kreslení došlo k výjimce.

Nahoru Odpovědět 18.4.2014 6:37
Kolik jazyků umíš, tolikrát jsi programátor.
Avatar
Odpovídá na Gramli
Libor Šimo (libcosenior):

Skus vysvetlit podmienku kod:

if(mapa[x,y] == Policka.Nic)
Editováno 18.4.2014 6:54
Nahoru Odpovědět 18.4.2014 6:53
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Gramli
Redaktor
Avatar
Gramli:

mám definovaný enum Policka, ve kterém mám položky Nic,Prekazka,Vychod atd.. to pole mapa obsahuje polozky toho enumu.
ten if:
jestlize na souradnici [x,y] je položka nic, kykresli co potřebuji a to samé tam bude pro ostatní položky.
Je to pochopitelné?

Nahoru Odpovědět 18.4.2014 9:09
Kdo to říká ten to je...
Avatar
Gramli
Redaktor
Avatar
Odpovídá na Libor Šimo (libcosenior)
Gramli:

Ještě sem zapoměl říct, ten if se provede jednou úplně na začátku, ale pak to okmažitě vyskočí z funkce.

Nahoru Odpovědět 18.4.2014 9:17
Kdo to říká ten to je...
Avatar
Odpovídá na Gramli
Ondřej Štorc:

Sice nevím čím to je, ale nebylo by lepší použít switch místo tisíce podmínek?

Nahoru Odpovědět 18.4.2014 9:21
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Gramli
Redaktor
Avatar
Gramli:

switch sem tam měl úplně poprvé a s tím to taky nefunguje.

Nahoru Odpovědět 18.4.2014 9:31
Kdo to říká ten to je...
Avatar
Gramli
Redaktor
Avatar
Gramli:

Vyřešeno: for byl špatně napsaný, takhle to funguje.

for (int x = 0; x < mapaSirka; x ++)
            {
                for (int y = 0; y < mapaVyska; y ++)
                {
                    if(mapa[x,y] == Policka.Nic)
                        g.DrawImage(EasterGame.Properties.Resources.trava, new Rectangle(x * polickoSirka, y * polickoVyska, polickoSirka, polickoVyska));
                }
            }
Nahoru Odpovědět 18.4.2014 9:44
Kdo to říká ten to je...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.