Panely v C aby nemohl jeden přes druhy – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Panely v C aby nemohl jeden přes druhy – C / C++ – Fórum – Programujte.comPanely v C aby nemohl jeden přes druhy – C / C++ – Fórum – Programujte.com

 

Merlin
~ Anonymní uživatel
13 příspěvků
6. 6. 2013   #1
-
0
-

potřeboval bych pomoct s programováním dělám do školy hru mam vše skoro dopsané jen mě chybí aby panel se ktarým but hejbu šipkama na klávesnici nebo v programu(panel) tak aby nezajížděl za ty šipky ktere jsem vytvořil jsou uložene v jednom panelu vím že to je naka podmínka ale nevím furt jaka předem děkuju za pomoc

Nahlásit jako SPAM
IP: 88.101.126.–
Merlin
~ Anonymní uživatel
13 příspěvků
6. 6. 2013   #2
-
0
-

Takto to mam napsané nevím ani kam tu podmínku mam napsat

namespace Hra
{
    public partial class Hra : Form
    {
        public Hra()
        {
            InitializeComponent();
        }
        private void pnlUp_MouseClick(object sender, MouseEventArgs e)
        {
            pnlLod.Location = new Point(pnlLod.Location.X, pnlLod.Location.Y - (int)numKrok.Value);
            if (pnlLod.Location.Y - numKrok.Value > 0)
                pnlLod.Location = new Point(pnlLod.Location.X, pnlLod.Location.Y - (int)numKrok.Value);
            else
                pnlLod.Top = 0;
        }

        private void pnlDown_MouseClick(object sender, MouseEventArgs e)
        {
            if (pnlLod.Location.Y + pnlLod.Size.Height + numKrok.Value < ClientSize.Height)
                pnlLod.Location = new Point(pnlLod.Location.X, pnlLod.Location.Y + (int)numKrok.Value);
            else
                pnlLod.Top = ClientSize.Height - pnlLod.Height;
        }

        private void pnlRight_MouseClick(object sender, MouseEventArgs e)
        {
            if (pnlLod.Location.X + pnlLod.Size.Width + numKrok.Value < ClientSize.Width)
                pnlLod.Location = new Point(pnlLod.Location.X + (int)numKrok.Value, pnlLod.Location.Y);
            else
                pnlLod.Left = ClientSize.Width - pnlLod.Width;
        }

        private void pnlLeft_MouseClick(object sender, MouseEventArgs e)
        {
            if (pnlLod.Location.X - numKrok.Value > 0)
                pnlLod.Location = new Point(pnlLod.Location.X - (int)numKrok.Value, pnlLod.Location.Y);
            else
                pnlLod.Left = 0;
        }

        private void Hra_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Up)
                if (pnlLod.Location.Y - numKrok.Value > 0)
                    pnlLod.Location = new Point(pnlLod.Location.X, pnlLod.Location.Y - (int)numKrok.Value);
                else
                    pnlLod.Top = 0;
            if (pnlLod.Location.Y + pnlLod.Size.Height < ClientSize.Height)

                if (e.KeyCode == Keys.Down)
                    if (pnlLod.Location.Y + pnlLod.Size.Height + numKrok.Value < ClientSize.Height)
                        pnlLod.Location = new Point(pnlLod.Location.X, pnlLod.Location.Y + (int)numKrok.Value);
                    else
                        pnlLod.Top = ClientSize.Height - pnlLod.Height;

            if (e.KeyCode == Keys.Left)
                if (pnlLod.Location.X - numKrok.Value > 0)
                    pnlLod.Location = new Point(pnlLod.Location.X - (int)numKrok.Value, pnlLod.Location.Y);
                else
                    pnlLod.Left = 0;

            if (e.KeyCode == Keys.Right)
                if (pnlLod.Location.X + pnlLod.Size.Width + numKrok.Value < ClientSize.Width)
                    pnlLod.Location = new Point(pnlLod.Location.X + (int)numKrok.Value, pnlLod.Location.Y);
                else
                    pnlLod.Left = ClientSize.Width - pnlLod.Width;

            if (e.KeyCode == Keys.Escape)
                Close();

        }
        private void Hra_MouseDown(object sender, MouseEventArgs e)
        {
            pnlLod.Location = new Point(e.X, e.Y);

            if (pnlLod.Location.X + pnlLod.Size.Width > ClientSize.Width)
                pnlLod.Left = ClientSize.Width - pnlLod.Width;

            if (pnlLod.Location.Y + pnlLod.Size.Height > ClientSize.Height)
                pnlLod.Top = ClientSize.Height - pnlLod.Height;
        }
    }
}
 

Nahlásit jako SPAM
IP: 88.101.126.–
Kowalsky950
Stálý člen
7. 6. 2013   #3
-
0
-

Pokud nechceš aby nezajížděla vůbec pod šipky, tak musíš znát pozici těch šipek. Potom nastavíš podmínku že horizontální poloha nesmí být menší než poloha těch šipek a do toho dáš podmínku že jestliže je vertikální pozice menší než poloha šipek, pak to tento pohyb může udělat.

if (verticalniPoloha>vertPolohaSipek)
	{
	if (horizontalniPoloha<horizPolohaSipek+jejichSirka)
		{
		//pohyb se neprovede
		}
	else
		{
		//pohyb se provede
		}
	}

Tohle by melo platit podle obrazku ktery jsi sem dal. A jestli pocitas za pozici levy horni rozek ;-)

jinak jakou pouzivas grafickou knihovnu?

Nahlásit jako SPAM
IP: 90.176.114.–
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, 83 hostů

Moderátoři diskuze

 

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