Avatar
Razrl
Člen
Avatar
Razrl:

Ahoj, dělám projekt PacMan do školy, nyní si lámu hlavu nad tím jak mám udělat aby picturebox (pacman) jezdil pouze mezi panely. Uvítám každou radu děkuji.

žlutý pictureBox je pacman
šedé a modré jsou panely pro ohraničení hracího pole a překážky.

  • kdyby jste někdo měli zvuk pacmana (wakawaka) nemůžu to nikde najít.
 
Odpovědět 27.4.2013 12:39
Avatar
Odpovídá na Razrl
Michal Žůrek (misaz):

Způsob jakým to děláš je špatný, dej tam jediný pictureBox a vykresluj do toho. To znamená že si vytvoří privátní g typu Graphics. Po spuštění formu na něho zavoláž createGraphics toho pictureBoxu:

Graphics g;
//Po načtení (Load)
g = PictureBox1.CreateGraphics()

No a pka nějakou metodu prekresli()

g.Clar(Color.White)
//Vykreslování ...
// příklad: g.FillRectangle(Color.Yellow, new Rectangle(new Point(0,0), new Size(10,10));
Nahoru Odpovědět 27.4.2013 12:51
Nesnáším {}, proto se jim vyhýbám.
Avatar
Petr Nymsa
Redaktor
Avatar
Odpovídá na Razrl
Petr Nymsa:

Udělej co psal Misaz, vytvoř si jeden picturebox a zaregistruj mu událost Paint, v metodě si vytvoř Graphics od PictureBoxu a kresli. Kód může vypadat nějak takto

void PictureBox_OnPaint(object source, OnPaintArgs e)
{
    Graphics g=e.Graphics;
    g.DrawLine(new Pen(Color.Red),new Point(0,0),new Point(80,80));

}

píšu z hlavy, není to úplně správně, ale podstatné je to graphics a její metody. Budeš tedy neustále překreslovat pictureBox. Při změně klávesy, resp. v timeru nezapomeň zavolat metodu Refresh na PictureBoxu

Nahoru Odpovědět 27.4.2013 16:31
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Michal Žůrek (misaz):

nebo přes paint, to je celkem fuk.

Nahoru Odpovědět 27.4.2013 16:35
Nesnáším {}, proto se jim vyhýbám.
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 5 zpráv z 5.