NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze: Form - Paint

V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Jak se ti líbí článek?
Před uložením hodnocení, popiš prosím autorovi, co je špatněZnaků 0 z 50-500
Jak se ti kurz líbí?
Tvé hodnocení kurzuZnaků 0 z 50-500
Aktivity
Avatar
Gramli
Tvůrce
Avatar
Gramli:17.4.2014 23:39

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
Odpovídá na Gramli
Zdeněk Pavlátka:18.4.2014 6:37

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):18.4.2014 6:53

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
Tvůrce
Avatar
Gramli:18.4.2014 9:09

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
Tvůrce
Avatar
Odpovídá na Libor Šimo (libcosenior)
Gramli:18.4.2014 9:17

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
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na Gramli
Ondřej Štorc:18.4.2014 9:21

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
Tvůrce
Avatar
Gramli:18.4.2014 9:31

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
Tvůrce
Avatar
Gramli:18.4.2014 9:44

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.