Fuknce nová hra – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Fuknce nová hra – .NET – Fórum – Programujte.comFuknce nová hra – .NET – Fórum – Programujte.com

 

JJ
~ Anonymní uživatel
13 příspěvků
2. 6. 2014   #1
-
0
-

Zdravím, prosím o radu ...

Dělám do školy "hru" Trefuj kuličku. Úkolem je kliknout na kuličku, která je buď zelená(levé tlačítko) nebo červená (pravé) ... Počet kuliček, které má program vykreslit má hráč zadat na začátku hry, a to je ten problém ... Nevím, jak nejprve zadat počet kuliček a až po té spustit samotné generování kuliček

using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Random nahoda = new Random(); //náhodné losování pozice kuličky
        Random nahoda_barva = new Random();

        //souřadnice, poloměr, barva kuličky
        int x, y; 
        int r = 5;
        Color barva_kulicky = Color.Transparent; //na začátku hry není vidět

        //možné barvy kuličky
        Color leve_tlacitko = Color.Green;
        Color prave_tlacitko = Color.Red;
        Color netrefena = Color.LightYellow;

        public Form1()
        {
            InitializeComponent();
        }

        private void casovac_kulicky_Tick(object sender, EventArgs e)
        {
            //nastavení, kde se bude kulička zobrazovat
            int min_x = r;
            int max_x = panel1.Width - r - 1;
            int min_y = r;
            int max_y = panel1.Height - r - 1;
          
            //vygenerování kuličky
            x = nahoda.Next(min_x, max_x + 1);
            y = nahoda.Next(min_y, max_y + 1);
            int barva = nahoda_barva.Next(2);
            if (barva == 0)
            {
                barva_kulicky = leve_tlacitko;
            }
            else
            {
                barva_kulicky = prave_tlacitko;
            }
            panel1.Refresh();

            //počítadlo kuliček
            int pocet_kulicek = Convert.ToInt32(text_box_pocet_kulicek.Text);
            pocet_kulicek++;
            text_box_pocet_kulicek.Text = pocet_kulicek.ToString();

        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Graphics plocha = e.Graphics;

            //vykreslení kuličky
            int x_levy = x - r;
            int y_levy = y - r;
            int sirka = 2 * r;
            int vyska = sirka;
            Brush stetec = new SolidBrush(barva_kulicky);
            plocha.FillEllipse(stetec, x_levy, y_levy, sirka, vyska);
        }

        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
          if (barva_kulicky == leve_tlacitko && barva_kulicky == prave_tlacitko) 
                return;

            //došlo k zásahu?
            int rozdil_x = e.X - x;
            int rozdil_y = e.Y - y;
            double vzdalenost_od_stredu = Math.Sqrt(rozdil_x * rozdil_x + rozdil_y * rozdil_y);
            bool zasah = vzdalenost_od_stredu <= r;

            if (zasah)
            { 
                if (e.Button == MouseButtons.Left)
                {
                    if (barva_kulicky == leve_tlacitko)
                    {
                    
                        panel1.Refresh();

                        int pocet_zasahu = Convert.ToInt32(text_Box_zasahy.Text);
                        pocet_zasahu++;
                        text_Box_zasahy.Text = pocet_zasahu.ToString();
                    }
                }

                if (e.Button == MouseButtons.Right)
                {
                    if (barva_kulicky == prave_tlacitko)
                    {
                    
                        panel1.Refresh();

                        int pocet_zasahu = Convert.ToInt32(text_Box_zasahy.Text);
                        pocet_zasahu++;
                        text_Box_zasahy.Text = pocet_zasahu.ToString();
                    }
                }
            }
            int pocet_kulicek = Convert.ToInt32(textBox1.Text);
            int pocitadlo = Convert.ToInt32(text_box_pocet_kulicek.Text);
            int zasahy = Convert.ToInt32(text_Box_zasahy.Text);
            if (pocet_kulicek == pocitadlo)
            {
                MessageBox.Show("KONEC HRY");
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            int pocet_kulicek = Convert.ToInt32(textBox1.Text);
    
        }
    }
}

a formulář vypadá takto

Připojen obrázek.

Díky moc

Nahlásit jako SPAM
IP: 81.200.55.–
Huhlal
~ Anonymní uživatel
1 příspěvek
2. 6. 2014   #2
-
0
-

Třeba v události formuláře OnLoad.

Nahlásit jako SPAM
IP: 77.87.240.–
p3can
~ Anonymní uživatel
312 příspěvků
3. 6. 2014   #3
-
0
-

muzes vic upresnit co presne chces aby to delalo ?

Nahlásit jako SPAM
IP: 77.92.213.–
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, 25 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ý