Avatar
RooBoo
Člen
Avatar
RooBoo:8.12.2013 12:34

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:8.12.2013 13:16

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:8.12.2013 13:21

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:8.12.2013 13:22

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

Nahoru Odpovědět 8.12.2013 13:22
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/ama.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na RooBoo
Jan Vargovský:8.12.2013 13:23

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:8.12.2013 14:04

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:8.12.2013 14:14

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:9.12.2013 17:26

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:9.12.2013 17:28

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
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/ama.
Avatar
RooBoo
Člen
Avatar
Odpovídá na Honza Bittner
RooBoo:9.12.2013 17:54

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:9.12.2013 19:16

Evidentně jsi to nečetl...

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

Nahoru Odpovědět 9.12.2013 19:16
Student FIT ČVUT. Followuj mě na https://twitter.com/tenhobi a ptej se na https://github.com/HoBi/ama.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na RooBoo
David Čápka:9.12.2013 21:06

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:9.12.2013 21:36

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ý:9.12.2013 21:40

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
Odpovídá na Jan Vargovský
RooBoo:9.12.2013 21:49

ano mam to zapnute

 
Nahoru Odpovědět 9.12.2013 21:49
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na RooBoo
Jan Vargovský:9.12.2013 21:54

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:9.12.2013 21:55

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:9.12.2013 21:55

Dakujem pekne uz to ide :)

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

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:10.12.2013 11:58

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.