Avatar
RooBoo
Člen
Avatar
RooBoo:

Vedel by mi niekto poradit ? Chcel by som vykreslit pohyb obrazkov pomocou Graphics. Nefunguje mi to tak ako to mam ... vedel by mi nekto poradit ?? Zalozil som si triedu Vykresli a vnej metodu :

public void vykresli_lisa(Graphics g,int i)
         {
             Image image = Image.FromFile("gamelisa.jpg");
             Point point = new Point(20, i);
             g.DrawImage(image, point);


         }

Vo Form1 som napisal :

private void valecjedna_Paint(object sender, PaintEventArgs e)
         {
             for (int i = 0; i < 200; i++)
             {
                 vykresli.vykresli_lisa(e.Graphics,i);
                 valecjedna.Refresh();

             }

         }
 
Odpovědět 8.12.2013 12:34
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na RooBoo
Petr Nymsa:

vymaž řádek valecjedna.Re­fresh(), voláš donekočna refresh (překreslení)

Nahoru Odpovědět  +1 8.12.2013 13:16
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
RooBoo
Člen
Avatar
Odpovídá na Petr Nymsa
RooBoo:

No vtedy mi aj aplikacia mrzla .. teraz uz nie .. ale pocas toho ako by to malo kreslit ten pohyb je pictureBox(va­lecjedna)bieli a potom ukaze len vykresleny obrazok na poslednej pozicii

 
Nahoru Odpovědět 8.12.2013 13:21
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na RooBoo
Honza Bittner:

To je přeci logické, zkus dát mezi to nějaký time ...

Nahoru Odpovědět 8.12.2013 13:22
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na RooBoo
Jan Vargovský:

To co ty chceš ti to udělá za pár stovek milisekund, jestli to chceš vidět jak se to posunuje děj si tam timer nebo uspání vlákna.

 
Nahoru Odpovědět  +1 8.12.2013 13:23
Avatar
RooBoo
Člen
Avatar
RooBoo:

a jak tam pridam ten timer ?

 
Nahoru Odpovědět 8.12.2013 14:04
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na RooBoo
David Čápka:

Všechno tu je ukázané, stačí jen hledat a číst: http://www.itnetwork.cz/…groundworker

Příklad z tutoriálu si uprav tak, aby ti posouval pozici objektu, který kreslíš.

Nahoru Odpovědět 8.12.2013 14:14
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
RooBoo
Člen
Avatar
Odpovídá na David Čápka
RooBoo:

vies mi trosku napovedat ze ako ? .. uz som s toho cvok

 
Nahoru Odpovědět 9.12.2013 17:26
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na RooBoo
Honza Bittner:

kidding me?

Přečti si to, proč by ti to jinak sdraco posílal?

A hned první zdrojový kód máš :

for (int i = 10; i > 0; i--)
{
        Console.WriteLine(i);
        Thread.Sleep(1000);
}

ten je pro konzole, tudíž ty další jsou již pro Windows Forms

Editováno 9.12.2013 17:32
Nahoru Odpovědět 9.12.2013 17:28
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
RooBoo
Člen
Avatar
Odpovídá na Honza Bittner
RooBoo:

A ty si myslis ze som to necital ?? .. jasne ze zom to cital... len neviem ako to mam prepisat ze po odpocitani timeru mi prepise poziciu

 
Nahoru Odpovědět 9.12.2013 17:54
Avatar
Honza Bittner
Redaktor
Avatar
Odpovídá na RooBoo
Honza Bittner:

Evidentně jsi to nečetl...

btw. třeba ti pomůže když si to nakreslíš :)

Nahoru Odpovědět 9.12.2013 19:16
Ptejte se mě na cokoli na https://github.com/HoBi/ama a followujte mě na Twitteru https://twitter.com/tenhobi. :-)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na RooBoo
David Čápka:

Udělej si ve formuláři atribut pozice typu int. Vlož si do formuláře Timer a PictureBox. PictureBox naklikni metodu Paint a tam vlož kód pro vykreslení čehokoli na pozici pozice. Dále naklikni Timer a v jeho kódu zvyš hodnotu pozice. Timeru dej enabled na true a máš to hotové. Pokud to ani takhle nesvedeš, měl bys asi začít něčím jednodušším, nemůžeš programovat grafiku, když nechápeš základní souvislosti.

Nahoru Odpovědět 9.12.2013 21:06
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
RooBoo
Člen
Avatar
Odpovídá na David Čápka
RooBoo:

Takze urobil som ako si povedal vytvoril som si

int pozicia = 0;

.. naklikol som si PictureBox(va­lecJedna) metodu Paint

private void valecJedna_Paint(object sender, PaintEventArgs e)
        {
                vykresli.vykresli_weed(e.Graphics, pozicia);
        }

naklikol som si timer1 a tam pridal zvisenie pozicie o 1

private void timer1_Tick(object sender, EventArgs e)
        {
            pozicia++;
        }

no stale to nejde .. asi fakt tomu nerozumiem a zacnem odznova ale vies mi povedat co mam zle ?

Editováno 9.12.2013 21:37
 
Nahoru Odpovědět 9.12.2013 21:36
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na RooBoo
Jan Vargovský:

Zapl jsi ten timer ? (to je ta část s enabled) popř. napiš timer1.Start(); v konstruktoru.

Editováno 9.12.2013 21:41
 
Nahoru Odpovědět 9.12.2013 21:40
Avatar
RooBoo
Člen
Avatar
 
Nahoru Odpovědět 9.12.2013 21:49
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na RooBoo
Jan Vargovský:

Tak zavolej Refresh na tom pictureboxu v té metodě Tick.

 
Nahoru Odpovědět 9.12.2013 21:54
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na RooBoo
Petr Nymsa:

Tohle plácání nemá smysl ;) začni odznova a postupně, vždyť vlastně nevíš co děláš a nic ti to nedá :)

Nahoru Odpovědět  +1 9.12.2013 21:55
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
RooBoo
Člen
Avatar
Odpovídá na Jan Vargovský
RooBoo:

Dakujem pekne uz to ide :)

 
Nahoru Odpovědět 9.12.2013 21:55
Avatar
Odpovídá na RooBoo
Libor Šimo (libcosenior):

Na youtube je niekoľko pekných tutoriálov o použití c# timer. Tam začni a rýchlejšie to pochopíš. ;)

Nahoru Odpovědět 10.12.2013 11:57
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Libor Šimo (libcosenior)
David Čápka:

Nevím, jestli je dobrý nápad směřovat začátečníky na youtube, tam si může každý nahrát co chce a nikdy nevíš, jestli je to správně nebo ne.

Nahoru Odpovědět 10.12.2013 11:58
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
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 20 zpráv z 20.