Pohyb objektu v Bitmapě – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pohyb objektu v Bitmapě – .NET – Fórum – Programujte.comPohyb objektu v Bitmapě – .NET – Fórum – Programujte.com

 

Mutagen0
Super člen
2. 4. 2012   #1
-
0
-

Zdravím,

Trochu jsem se zasekl na pohybu objektu v Bitmapě. Mám vytvořenou nějakou síť, na kterou vytvořím přes toto objekt v Bitmapě. (Field je picturebox)

        public static void Create(int X, int Y)
        {
            Graphics _graphics = Graphics.FromImage(_bitmap);
            _graphics.DrawImage(Image.FromFile("Data/Objekt.JPG"), new Point(X, Y));
            _field.Image = _bitmap;
            _graphics.Dispose();
        }

A jde mi o to jak s ním mohu pohybovat po různých souřadnicích, protože pokaždý když toto použiju s jiným X a Y tak stejnak předchozí objekt tam zůstane. Chtěl bych se zeptat jak ho buď vymazat nebo s ním přímo pohybovat. Děkuji

Nahlásit jako SPAM
IP: 89.190.90.–
naromax
~ Redaktor
+1
Návštěvník
2. 4. 2012   #2
-
0
-

Ano, je to způsobeno tím, že pokud například opravdu s objektem pohybuje a používáte metodu víš., tak se vždy vytvoří nový a nový objekt. Podívejte se na http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.aspx. Na začátek metody nejdříve použijte metodu Clear ( nebo tak nějak tuším, že se jmenuje) instance _field.

EDIT :

Použijte toto :

_field.Image = null;
_field.Invalidate();
Nahlásit jako SPAM
IP: 86.61.239.–
Pořádek je pro blbce, inteligent zvládá chaos.
Mutagen0
Super člen
2. 4. 2012   #3
-
0
-

#2 naromax
Bohužel nepomohlo, viz obrázek

Podle mě musím vytvářet úplně kompletně novou celou síť, nebo aspoň si ji uložit bokem, a updatovat jenom do PB (2bitmapy -> 1 síť, 2 Síť + Objekt) Nebo nevím jak to udělat

Nahlásit jako SPAM
IP: 89.190.90.–
naromax
~ Redaktor
+1
Návštěvník
2. 4. 2012   #4
-
0
-

hmm.....

Zkuste pod řádek, kde definujete Graphics dodat :

_graphics.Clear();
Nahlásit jako SPAM
IP: 86.61.239.–
Pořádek je pro blbce, inteligent zvládá chaos.
Mutagen0
Super člen
2. 4. 2012   #5
-
0
-

#4 naromax
Ano "_graphics.Clear(Color.Transparent);" Tohle mi funguje -> Ukazuje se tam jenom jednou -> Ale ... Vymaže se mi celá síť :X

Nahlásit jako SPAM
IP: 89.190.90.–
naromax
~ Redaktor
+1
Návštěvník
2. 4. 2012   #6
-
0
-

Aha. No, víte co bych Vám poradil? Pokud vyloženě potřebujete pohybovat jen s tímto jedním obrázkem, vytvořte si pro něj nový PictureBox, v kódu si pak můžete popř. měnit obrázek, který bude vykreslovat. A potom budeme s tímto obrázkem manipulovat prostřednictvím celého Pictureboxu. De facto tedy budete nastavovat souřadnice té komponentě PictureBox. Ovšem je to závislé na tom, co přesně od aplikace vyžadujete.

Nahlásit jako SPAM
IP: 86.61.239.–
Pořádek je pro blbce, inteligent zvládá chaos.
Mutagen0
Super člen
2. 4. 2012   #7
-
0
-

No tak jsem teda vytvořil PB (PictureBox) s kterým pohybuju ... jenom problém je v tom, že přes ten původní "větší" PB nejde vidět :D ... Se na to vy*eru udělám líp :D

Nahlásit jako SPAM
IP: 89.190.90.–
naromax
~ Redaktor
+1
Návštěvník
3. 4. 2012   #8
-
0
-

Zrovna si nevzpomínám, jestli má Picturebox nějakou vlastnost, či metodu na překrývání jednotlivých pictureboxů(jako, že teřba první nastavíte určitou prioritu a dalšímu jinou nižší, apod.). Ovšem, když nejprve vytvoříte to vaše pole a až potom objekt, s kterým budete pohybovat, logicky by asi druhý picturebox měl být nahoře.

Ještě se mrknu do dokumentace a potom napíše...

Nahlásit jako SPAM
IP: 86.61.239.–
Pořádek je pro blbce, inteligent zvládá chaos.
naromax
~ Redaktor
+1
Návštěvník
3. 4. 2012   #9
-
0
-

Ano, tak skutečně jsou tu metody BringToFront a SendToBack, zkuste, co to udělá   !

Nahlásit jako SPAM
IP: 86.61.239.–
Pořádek je pro blbce, inteligent zvládá chaos.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 17 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý