Diskuze: Zobrazení několika stejných obrázků + bod který má pozici stejnou jako pozice mysši

C# .NET .NET (C# a Visual Basic) Zobrazení několika stejných obrázků + bod který má pozici stejnou jako pozice mysši American English version English version

Avatar
Preedy
Člen
Avatar
Preedy:

Ahoj, snažím se udělat takovou mini střílečku, při spuštění aplikace v panelu zobrazit 5 stejných obrázků na různých pozicích to jsem zvládl takhle:

private void panel_hry_Paint(object sender, PaintEventArgs e)
       {
           Graphics kp = e.Graphics;
           int pomX = sirkaPanelu - sirkaPanacka;//definováno v loadu
           int pomY = vyskaPanelu - vyskaPanacka;// -||-
           int i = 0;
           while (i < 5)
           {
               xLHPanacka = this.nahoda.Next(0, pomX + 1);
               yLHPanacka = this.nahoda.Next(0, pomY + 1);
               kp.DrawImage(panacek, xLHPanacka, yLHPanacka);
               i++;
           }
       }

ale stává se že se obrázky překrývají tak jsem se snažil udělat že pokud se středy obrázku rovnají tak to udělej znovu to jsem zkoušel všelijak, ale nazdařilo se(proměnné tam mám jednou a je nesmysl dělat pro každý obrázek zvlášť).
Druhý problém snažit se nakreslit bod(zaměřovač) který se posune vždy tam kde je zrovna myš(šipka).

Point poziceMysi = MousePosition;xMys = poziceMysi.X;
            yMys = poziceMysi.Y;

a potom nakresli elipsu v bodech xMys, yMys a zasekl jsem se. Tak kdyby se našel někdo kdo mi poradí, bud vděčný.

 
Odpovědět 22.8.2012 14:07
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Preedy
David Čápka:

Překrytí obrázků nejde vyřešit bez toho, aniž by sis pamatoval, kde již jsou. Budeš si muset napsat metodu na kolizi obdelníků a pokládat obrázek tak dlouho, dokud nebude s ničím kolidovat.

Nenapsal jsi, na čem jsi se s myší zasekl, čili nevím, jak bych ti s tímto mohl pomoci.

Nahoru Odpovědět 22.8.2012 14:54
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
Preedy
Člen
Avatar
Preedy:

ten zaměřovač si představuju tak že se objeví nějaký bod, a ten se bude hýbat stejně jako myš, pokud pohnu myší doleva, tak se i ten bod posune doleva..(nebo druhá možnost že aby ten bod byl vidět, tak by byl vždy např. 5 px doprava a 5 nahoru)

 
Nahoru Odpovědět 22.8.2012 16:07
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Preedy
David Čápka:

Když si dáš na panel událost MouseMove, tak v parametru callbacku e máš souřadnice, tedy e.x a e.y, na kterých je myš.

Nahoru Odpovědět 22.8.2012 17:34
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
user
Redaktor
Avatar
user:

Předpokládám že používáš XNA framework:

Jinak stále nerozumím s čím máš problém.
Ale pokusím se:

(pozici myši zjistíš pomocí Mouse.GetState().X / Mouse.GetState().Y)
(pozice se posuzují většinou podle rectanglů).

Zaměřovač můžeš mít např. jako obrázek

takže mám rectangle zamerovac (v metodě LoadContent())

Rectangle zamerovac = new Rectangle(
                50, // na nejakych zacinajicich souradnicich
                50,
                zamerovacTexture.Width,
                zamerovacTexture.Height);

pozici zaměřovače pak aktualizuješ v update metodě tak, že nastavíš:

zamerovac.X = (int)Mouse.GetState().X;
zamerovac.Y = (int)Mouse.GetState().X;

("Rectangle zamerovac" samozrejme jeste vykreslis)...
Snad to je to s čím máš problém, pokud ne, zkus se lépe vyjádřit.

 
Nahoru Odpovědět 22.8.2012 17:37
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na user
David Čápka:

Nepoužívá, píše, že to má na panelu :)

Nahoru Odpovědět 22.8.2012 17:52
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
user
Redaktor
Avatar
Odpovídá na David Čápka
user:

aha, nějak mi to uniklo, sorry

 
Nahoru Odpovědět 22.8.2012 18:03
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 7 zpráv z 7.