Diskuze: Nefungující časovač

C# .NET .NET (C# a Visual Basic) Nefungující časovač American English version English version

Avatar
anticary
Člen
Avatar
anticary:

Zdravím.
Mám takový menší problém. Vždy když ve Visual Studiu 2010 dělám nějaký delší a složitější projekt, přestanou mi fungovat časovače(Timer). Popsal bych to tak, že časovač přestane "tikat". Nevím co s tím zkoušel jsem i třeba zkopírovat kód a vložit ho do nového(čistého) projektu a to mi jednou pomohlo... teď už bohužel ne. Mimochodem "Enable" mam nastaveno na true jenom pro úplnost.
Doufám že to tady nebudu za vola, když to bude nějaká jasná věc.
Předem děkuju za jakoukoliv odpověď :)

 
Odpovědět 21.1.2015 15:30
Avatar
rwn
Člen
Avatar
Odpovídá na anticary
rwn:

Třeba ti ten časovač jen dojel, ale těžko takhle říct, zkus sem hodit kousek kódu. ;)

Nahoru Odpovědět 21.1.2015 15:33
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na anticary
Jan Vargovský:

Můžeš někde upnout ten projekt? Rád bych se na něj podíval.

 
Nahoru Odpovědět 21.1.2015 15:34
Avatar
anticary
Člen
Avatar
Odpovídá na Jan Vargovský
anticary:

Tady je ten kód... promiň že je tak dlouhý, ale nevím co s mim problémem může být spojené :)... A něco může být napsáno špatně... programuji asi měsíc(vím že už jsem tu zaregistrovaný déle, ale začal jsem teprve nedávno) a spoustu věcí jsem si musel vymyslet... :)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace NajdiFerdu
{
    enum Smer
    {
        Nahoru, Dolu, Doprava, Doleva
    }
    public partial class Form1 : Form
    {
        public Form1()
        {
            GeneratorMapy();
            InitializeComponent();
            Hrac = new PostavaHrace(G_hrac_pravo);
            Klon = new DuplikatHrace(G_hrac2_pravo);
        }

        Image G_hrac_levo = NajdiFerdu.Properties.Resources.hrac_levo;
        Image G_hrac_pravo = NajdiFerdu.Properties.Resources.hrac_pravo;
        Image G_hrac2_levo = NajdiFerdu.Properties.Resources.hrac_levo1;
        Image G_hrac2_pravo = NajdiFerdu.Properties.Resources.hrac_pravo1;

        Image G_trava = NajdiFerdu.Properties.Resources.trava;
        Image G_strom = NajdiFerdu.Properties.Resources.strom;
        Image G_konec_trava = NajdiFerdu.Properties.Resources.konec_trava;
        Image G_kerbal_trava = NajdiFerdu.Properties.Resources.kerbal_trava;
        Image G_zed_laborator = NajdiFerdu.Properties.Resources.zed_laborator;
        Image G_zed_laborator2 = NajdiFerdu.Properties.Resources.zed_laborator2;
        Image G_zed_laborator3 = NajdiFerdu.Properties.Resources.zed_laborator3;
        Image G_cesta_laborator = NajdiFerdu.Properties.Resources.podlaha_laborator;
        Image G_cesta_laborator2 = NajdiFerdu.Properties.Resources.podlaha_laborator2;
        Image G_konec_laborator = NajdiFerdu.Properties.Resources.podlaha_laborator_konec;
        Image G_kerbal_laborator = NajdiFerdu.Properties.Resources.podlaha_laborator_kerbal;

        Image G_srdce_plne = NajdiFerdu.Properties.Resources.Srdicko;
        Image G_srdce_polo = NajdiFerdu.Properties.Resources.Srdicko_pulka;
        Image G_srdce_prazd = NajdiFerdu.Properties.Resources.Srdicka_zadne;
        Image G_kerbal = NajdiFerdu.Properties.Resources.kerbal;

        private void Form1_Load(object sender, EventArgs e)
        {
            this.ClientSize = new Size(1000, 700);
            this.Location = new Point(10, 10);
        }

        PostavaHrace Hrac;
        DuplikatHrace Klon;
        const int SirkaPolicka = 50;
        const int VyskaPolicka = 50;
        const int SirkaMapy = 19;
        const int VyskaMapy = 13;
        const int SirkaObrazku = 25;
        const int VyskaObrazku = 25;

        int level = 1;
        int kapitola = 2;
        float zivoty = 10;
        int kerbal = 0;
        bool aktivaceKlona = true;

        enum StavPolicek
        {
            zed, cesta, dvere, konec, kerbal, prechod_zed, prechod_cesta, dvere_prechod, konec_prechod, kontrolak
        }
        enum Cesta
        {
            nahoru, dolu, doprava, doleva, konec
        }
        enum StavTextur
        {
            zed1, zed2, zed3, cesta1, cesta2
        }

        StavPolicek[,] Mapa = new StavPolicek[SirkaMapy, VyskaMapy];
        Cesta[,] MapaCesty = new Cesta[SirkaMapy, VyskaMapy];
        StavTextur[,] MapaTex = new StavTextur[SirkaMapy, VyskaMapy];
        Random gen = new Random();

        private void GeneratorMapy()
        {
            for (int x = 0; x < SirkaMapy; x++)
            {
                for (int y = 0; y < VyskaMapy; y++)
                {
                    Mapa[x, y] = StavPolicek.zed;
                }
            }
            switch (level)
            {
                case 1:
                    Level1();
                    break;
                case 2:
                    Level2();
                    break;
                case 3:
                    Level3();
                    break;
            }
            GeneratorTextur();
        }

        int random_tex;
        private void GeneratorTextur()
        {
            for (int x = 0; x < SirkaMapy; x++)
            {
                for (int y = 0; y < VyskaMapy; y++)
                {
                    if (Mapa[x, y] == StavPolicek.zed)
                    {
                        random_tex = gen.Next(0, 101);
                        if (random_tex >= 0 && random_tex <= 60)
                            MapaTex[x, y] = StavTextur.zed1;
                        if (random_tex > 60 && random_tex <= 90)
                            MapaTex[x, y] = StavTextur.zed2;
                        if (random_tex > 90)
                            MapaTex[x, y] = StavTextur.zed3;
                    }
                    if (Mapa[x, y] == StavPolicek.cesta)
                    {
                        random_tex = gen.Next(0, 101);
                        if (random_tex >= 0 && random_tex <= 70)
                            MapaTex[x, y] = StavTextur.cesta1;
                        if (random_tex > 70)
                            MapaTex[x, y] = StavTextur.cesta2;
                    }
                }
            }
        }

        private void VykresleniMapy(Graphics g)
        {
            for (int x = 0; x < SirkaMapy; x++)
            {
                for (int y = 0; y < VyskaMapy; y++)
                {
                    switch (Mapa[x, y])
                    {
                        case StavPolicek.zed:
                            switch (kapitola)
                            {
                                case 1:
                                    g.DrawImage(G_strom, x * SirkaPolicka, y * VyskaPolicka);
                                    break;
                                case 2:
                                    switch (MapaTex[x, y])
                                    {
                                        case StavTextur.zed1:
                                            g.DrawImage(G_zed_laborator, x * SirkaPolicka, y * VyskaPolicka);
                                            break;
                                        case StavTextur.zed2:
                                            g.DrawImage(G_zed_laborator2, x * SirkaPolicka, y * VyskaPolicka);
                                            break;
                                        case StavTextur.zed3:
                                            g.DrawImage(G_zed_laborator3, x * SirkaPolicka, y * VyskaPolicka);
                                            break;
                                    }
                                    break;
                            }
                            break;
                        case StavPolicek.cesta:
                            switch (kapitola)
                            {
                                case 1:
                                    g.DrawImage(G_trava, x * SirkaPolicka, y * VyskaPolicka);
                                    break;
                                case 2:
                                    switch (MapaTex[x, y])
                                    {
                                        case StavTextur.cesta1:
                                            g.DrawImage(G_cesta_laborator, x * SirkaPolicka, y * VyskaPolicka);
                                            break;
                                        case StavTextur.cesta2:
                                            g.DrawImage(G_cesta_laborator2, x * SirkaPolicka, y * VyskaPolicka);
                                            break;
                                    }
                                    break;
                            }
                            break;
                        case StavPolicek.konec:
                            switch (kapitola)
                            {
                                case 1:
                                    g.DrawImage(G_konec_trava, x * SirkaPolicka, y * VyskaPolicka);
                                    break;
                                case 2:
                                    g.DrawImage(G_konec_laborator, x * SirkaPolicka, y * VyskaPolicka);
                                    break;
                            }
                            break;
                        case StavPolicek.kerbal:
                            switch (kapitola)
                            {
                                case 1:
                                    g.DrawImage(G_kerbal_trava, x * SirkaPolicka, y * VyskaPolicka);
                                    break;
                                case 2:
                                    g.DrawImage(G_kerbal_laborator, x * SirkaPolicka, y * VyskaPolicka);
                                    break;
                            }
                            break;
                        case StavPolicek.prechod_zed:
                            switch (kapitola)
                            {
                                case 1:
                                    switch (MapaTex[x, y])
                                    {
                                        case StavTextur.zed1:
                                            g.DrawImage(G_zed_laborator, x * SirkaPolicka, y * VyskaPolicka);
                                            break;
                                        case StavTextur.zed2:
                                            g.DrawImage(G_zed_laborator2, x * SirkaPolicka, y * VyskaPolicka);
                                            break;
                                        case StavTextur.zed3:
                                            g.DrawImage(G_zed_laborator3, x * SirkaPolicka, y * VyskaPolicka);
                                            break;
                                    }
                                    break;
                                case 2:
                                    g.DrawImage(G_trava, x * SirkaPolicka, y * VyskaPolicka);
                                    break;
                            }
                            break;
                    }
                }
            }
        }
        private void VykresleniHrace(Graphics g)
        {
            Image obrazekKvykresleni;
            Image obrazekKvykresleni2;
            switch (Hrac.SmerHrace)
            {
                case Smer.Doprava:
                    obrazekKvykresleni = G_hrac_pravo;
                    break;
                case Smer.Doleva:
                    obrazekKvykresleni = G_hrac_levo;
                    break;
                case Smer.Nahoru:
                    obrazekKvykresleni = G_hrac_pravo;
                    break;
                case Smer.Dolu:
                    obrazekKvykresleni = G_hrac_pravo;
                    break;
                default:
                    obrazekKvykresleni = G_hrac_pravo;
                    break;
            }
            if (aktivaceKlona == true)
            {
                switch (Klon.SmerHrace)
                {
                    case Smer.Doprava:
                        obrazekKvykresleni2 = G_hrac2_pravo;
                        break;
                    case Smer.Doleva:
                        obrazekKvykresleni2 = G_hrac2_levo;
                        break;
                    case Smer.Nahoru:
                        obrazekKvykresleni2 = G_hrac2_pravo;
                        break;
                    case Smer.Dolu:
                        obrazekKvykresleni2 = G_hrac2_pravo;
                        break;
                    default:
                        obrazekKvykresleni2 = G_hrac2_pravo;
                        break;
                }
                Bitmap bitmapa2 = (Bitmap)obrazekKvykresleni2;
                bitmapa2.MakeTransparent(Color.Magenta);
                g.DrawImage(obrazekKvykresleni2, Klon.X * SirkaPolicka, Klon.Y * VyskaPolicka);
            }
            Bitmap bitmapa = (Bitmap)obrazekKvykresleni;
            bitmapa.MakeTransparent(Color.Magenta);
            g.DrawImage(obrazekKvykresleni, Hrac.X * SirkaPolicka, Hrac.Y * VyskaPolicka);
        }
        private void VykresleniZivotu(Graphics g)
        {
            int y = 650;
            int x = 10;
            while (x < 260)
            {
                g.DrawImage(G_srdce_plne, x, y);
                x += 25;
            }
            x = 10;
            if (zivoty == 10)
            {
                while (x < 260)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
            }
            if (zivoty == 9.5)
            {
                while (x < 235)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_polo, x, y);
            }
            if (zivoty == 9)
            {
                while (x < 235)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 8.5)
            {
                while (x < 210)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_polo, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 8)
            {
                while (x < 210)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 7.5)
            {
                while (x < 185)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_polo, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 7)
            {
                while (x < 185)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 6.5)
            {
                while (x < 160)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_polo, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 6)
            {
                while (x < 160)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 5.5)
            {
                while (x < 135)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_polo, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 5)
            {
                while (x < 135)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 4.5)
            {
                while (x < 110)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_polo, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 4)
            {
                while (x < 110)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 3.5)
            {
                while (x < 85)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_polo, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 3)
            {
                while (x < 85)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 2.5)
            {
                while (x < 60)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_polo, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 2)
            {
                while (x < 60)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 1.5)
            {
                while (x < 35)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_polo, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 1)
            {
                while (x < 35)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 0.5)
            {
                while (x < 10)
                {
                    g.DrawImage(G_srdce_plne, x, y);
                    x += 25;
                }
                g.DrawImage(G_srdce_polo, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
                x += 25;
                g.DrawImage(G_srdce_prazd, x, y);
            }
            if (zivoty == 0)
            {
                while (x < 260)
                {
                    g.DrawImage(G_srdce_prazd, x, y);
                    x += 25;
                }
            }


            Bitmap srdce1 = (Bitmap)G_srdce_plne;
            Bitmap srdce2 = (Bitmap)G_srdce_polo;
            Bitmap srdce3 = (Bitmap)G_srdce_prazd;
            srdce1.MakeTransparent(Color.Magenta);
            srdce2.MakeTransparent(Color.Magenta);
            srdce3.MakeTransparent(Color.Magenta);
            this.Invalidate();
        }
        private void VykresleniTextu(Graphics g)
        {
            Font pismo = new Font("Arial", 9);
            g.DrawString("" + kerbal, pismo, Brushes.Black, 951, 1);
        }

        //LEVELY
        private void Level1()
        {
            int y = 1;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[4, y] = StavPolicek.cesta;
            Mapa[5, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[7, y] = StavPolicek.cesta;
            Mapa[8, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[11, y] = StavPolicek.cesta;
            Mapa[12, y] = StavPolicek.cesta;
            Mapa[13, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            Mapa[15, y] = StavPolicek.cesta;
            Mapa[16, y] = StavPolicek.cesta;
            Mapa[17, y] = StavPolicek.konec;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[8, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[8, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[12, y] = StavPolicek.cesta;
            Mapa[13, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[7, y] = StavPolicek.cesta;
            Mapa[8, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[11, y] = StavPolicek.cesta;
            Mapa[12, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            Mapa[15, y] = StavPolicek.cesta;
            Mapa[16, y] = StavPolicek.cesta;
            Mapa[17, y] = StavPolicek.kerbal;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[8, y] = StavPolicek.cesta;
            Mapa[17, y] = StavPolicek.cesta;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[8, y] = StavPolicek.cesta;
            Mapa[9, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[11, y] = StavPolicek.cesta;
            Mapa[12, y] = StavPolicek.cesta;
            Mapa[17, y] = StavPolicek.cesta;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[12, y] = StavPolicek.cesta;
            Mapa[17, y] = StavPolicek.cesta;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[4, y] = StavPolicek.cesta;
            Mapa[5, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[7, y] = StavPolicek.cesta;
            Mapa[8, y] = StavPolicek.cesta;
            Mapa[9, y] = StavPolicek.cesta;
            Mapa[12, y] = StavPolicek.cesta;
            Mapa[13, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            Mapa[15, y] = StavPolicek.cesta;
            Mapa[17, y] = StavPolicek.cesta;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[9, y] = StavPolicek.cesta;
            Mapa[12, y] = StavPolicek.cesta;
            Mapa[15, y] = StavPolicek.cesta;
            Mapa[17, y] = StavPolicek.cesta;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[9, y] = StavPolicek.cesta;
            Mapa[8, y] = StavPolicek.cesta;
            Mapa[7, y] = StavPolicek.cesta;
            Mapa[5, y] = StavPolicek.cesta;
            Mapa[4, y] = StavPolicek.cesta;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[12, y] = StavPolicek.cesta;
            Mapa[15, y] = StavPolicek.cesta;
            Mapa[17, y] = StavPolicek.cesta;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[7, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[5, y] = StavPolicek.cesta;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[9, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[11, y] = StavPolicek.cesta;
            Mapa[12, y] = StavPolicek.cesta;
            Mapa[15, y] = StavPolicek.cesta;
            Mapa[16, y] = StavPolicek.cesta;
            Mapa[17, y] = StavPolicek.cesta;






        }
        private void Level2()
        {
            Hrac.X = 1;
            Hrac.Y = 1;
            int y = 1;
            for (int x = 1; x < SirkaMapy - 2; x++)
            {
                Mapa[x, y] = StavPolicek.cesta;
            }
            Mapa[17, y] = StavPolicek.konec;
            y++;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            y++;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            y++;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            y++;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            y++;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            y++;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            y++;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[5, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[7, y] = StavPolicek.cesta;
            Mapa[9, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[11, y] = StavPolicek.cesta;
            Mapa[13, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            Mapa[15, y] = StavPolicek.cesta;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[2, y] = StavPolicek.kerbal;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[5, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.kerbal;
            Mapa[7, y] = StavPolicek.cesta;
            Mapa[9, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.kerbal;
            Mapa[11, y] = StavPolicek.cesta;
            Mapa[13, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.kerbal;
            Mapa[15, y] = StavPolicek.cesta;
            y++;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[2, y] = StavPolicek.cesta;
            Mapa[3, y] = StavPolicek.cesta;
            Mapa[5, y] = StavPolicek.cesta;
            Mapa[6, y] = StavPolicek.cesta;
            Mapa[7, y] = StavPolicek.cesta;
            Mapa[9, y] = StavPolicek.cesta;
            Mapa[10, y] = StavPolicek.cesta;
            Mapa[11, y] = StavPolicek.cesta;
            Mapa[13, y] = StavPolicek.cesta;
            Mapa[14, y] = StavPolicek.cesta;
            Mapa[15, y] = StavPolicek.cesta;
        }
        private void Level3()
        {
            int y = 1;
            Mapa[1, y] = StavPolicek.cesta;
            Mapa[2, y] = StavPolicek.cesta;
        }

        private bool ZkontrolujPolicko(int x, int y)
        {
            return Mapa[x, y] != StavPolicek.zed & Mapa[x, y] != StavPolicek.prechod_zed;
        }

        private void PruchodKlona()
        {
            switch (MapaCesty[Klon.X, Klon.Y])
            {
                case Cesta.nahoru:
                    Klon.Y--;
                    break;
                case Cesta.dolu:
                    Klon.Y++;
                    break;
                case Cesta.doleva:
                    Klon.X--;
                    break;
                case Cesta.doprava:
                    Klon.X++;
                    break;
            }
        }

        private void Form1_Paint_1(object sender, PaintEventArgs e)
        {
            VykresleniMapy(e.Graphics);
            VykresleniHrace(e.Graphics);
            VykresleniZivotu(e.Graphics);
            VykresleniTextu(e.Graphics);
        }

        private void Form1_KeyDown_1(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
                case Keys.W://NAHORU
                    if (Hrac.Y - 1 < VyskaMapy && ZkontrolujPolicko(Hrac.X, Hrac.Y - 1))
                    {
                        Hrac.Y--;
                    }
                    break;
                case Keys.S://DOLU
                    if (Hrac.Y + 1 < VyskaMapy && ZkontrolujPolicko(Hrac.X, Hrac.Y + 1))
                    {
                        Hrac.Y++;
                    }
                    break;
                case Keys.D://DOPRAVA
                    if (Hrac.X + 1 < SirkaMapy && ZkontrolujPolicko(Hrac.X + 1, Hrac.Y))
                    {
                        Hrac.X++;
                    }
                    break;
                case Keys.A://DOLEVA
                    if (Hrac.X - 1 < SirkaMapy && ZkontrolujPolicko(Hrac.X - 1, Hrac.Y))
                    {
                        Hrac.X--;
                    }
                    break;
                case Keys.P:
                    if (aktivaceKlona == false)
                        aktivaceKlona = true;
                    if (aktivaceKlona == true)
                        aktivaceKlona = false;

                    PochodKlona.Enabled = true;
                    break;
                case Keys.Control:
                    Klon.X = Hrac.X;
                    Klon.Y = Hrac.Y;
                    break;
            }

            if (e.Control)
            {
                MapaCesty[Hrac.X, Hrac.Y] = Cesta.konec;
                switch (e.KeyCode)
                {
                    case Keys.W://NAHORU
                        if (Hrac.Y - 1 < VyskaMapy && ZkontrolujPolicko(Hrac.X, Hrac.Y - 1))
                        {
                            MapaCesty[Hrac.X, Hrac.Y] = Cesta.nahoru;
                        }
                        break;
                    case Keys.S://DOLU
                        if (Hrac.Y + 1 < VyskaMapy && ZkontrolujPolicko(Hrac.X, Hrac.Y + 1))
                        {
                            MapaCesty[Hrac.X, Hrac.Y] = Cesta.dolu;
                        }
                        break;
                    case Keys.D://DOPRAVA
                        if (Hrac.X + 1 < SirkaMapy && ZkontrolujPolicko(Hrac.X + 1, Hrac.Y))
                        {
                            MapaCesty[Hrac.X, Hrac.Y] = Cesta.doprava;
                        }
                        break;
                    case Keys.A://DOLEVA
                        if (Hrac.X - 1 < SirkaMapy && ZkontrolujPolicko(Hrac.X - 1, Hrac.Y))
                        {
                            MapaCesty[Hrac.X, Hrac.Y] = Cesta.doleva;
                        }
                        break;
                }
            }

            if (Mapa[Hrac.X, Hrac.Y] == StavPolicek.konec)
            {
                Mapa[Hrac.X, Hrac.Y] = StavPolicek.cesta;
                level++;
                GeneratorMapy();
                Hrac.X = 1;
                Hrac.Y = 1;
            }
            if (Mapa[Hrac.X, Hrac.Y] == StavPolicek.kerbal)
            {
                Mapa[Hrac.X, Hrac.Y] = StavPolicek.cesta;
                MapaTex[Hrac.X, Hrac.Y] = StavTextur.cesta1;
                kerbal++;
            }

            this.Invalidate();
        }

        private void PochodKlona_Tick(object sender, EventArgs e)
        {
            kerbal++;
            PruchodKlona();
            if (MapaCesty[Klon.X, Klon.Y] == Cesta.konec)
                PochodKlona.Enabled = false;
            kerbal++;
            this.Invalidate();
        }
    }
    //PruchodKlona();
            //if (MapaCesty[Klon.X, Klon.Y] == Cesta.konec)
              //  PochodKlona.Enabled = false;
     //       kerbal++;
       //     this.Invalidate();
    class PostavaHrace
    {

        public Image Grafika
        {
            get;
            private set;
        }

        private int x = 1, y = 1;

        public int X
        {
            get
            {
                return x;
            }
            set
            {
                if (X > value)
                {
                    SmerHrace = Smer.Doleva;
                }
                else
                {
                    SmerHrace = Smer.Doprava;
                }

                x = value;
            }
        }

        public int Y
        {
            get
            {
                return y;
            }
            set
            {
                if (Y > value)
                {
                    SmerHrace = Smer.Nahoru;
                }
                else
                {
                    SmerHrace = Smer.Dolu;
                }

                y = value;
            }
        }

        public PostavaHrace()
        {
            SmerHrace = Smer.Doprava;
        }

        public PostavaHrace(Image obrazek)
        {
            Grafika = obrazek;
        }

        public Smer SmerHrace
        {
            get;
            private set;
        }
    }
    class DuplikatHrace
    {
        public Image Grafika
        {
            get;
            private set;
        }

        private int x = 1, y = 1;

        public int X
        {
            get
            {
                return x;
            }
            set
            {
                if (X > value)
                {
                    SmerHrace = Smer.Doleva;
                }
                else
                {
                    SmerHrace = Smer.Doprava;
                }

                x = value;
            }
        }

        public int Y
        {
            get
            {
                return y;
            }
            set
            {
                if (Y > value)
                {
                    SmerHrace = Smer.Nahoru;
                }
                else
                {
                    SmerHrace = Smer.Dolu;
                }

                y = value;
            }
        }

        public DuplikatHrace()
        {
            SmerHrace = Smer.Doprava;
        }

        public DuplikatHrace(Image obrazek)
        {
            Grafika = obrazek;
        }

        public Smer SmerHrace
        {
            get;
            private set;
        }
    }
}
 
Nahoru Odpovědět 21.1.2015 16:39
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na anticary
Jan Vargovský:

Chtěl jsem upnout projekt a né zdroják. Nebudu u sebe vytvářet projekt a kopírovat tam postupně.

Btw, zkus refaktorovat některé části kódu. Ten kód by se dal zredukovat minimálně na polovinu.

 
Nahoru Odpovědět  +1 21.1.2015 21:22
Avatar
vodslon
Člen
Avatar
Odpovídá na anticary
vodslon:

Ahoj, já jsem také začátečník a musím říct, že jeslti programuješ jenom měsíc, tak si se do toho teda pustil. Zkus použít ReSharper (je tady na něj i reklama). Ten by Ti ten kod mohl hodně zjednodušit, jinak jak píše kolega, dej nám někam sln, at si to můžeme zkusit pustit, protože takhle bych si to musel kopírovat a navazovat eventy a to se mi moc nechce :).

 
Nahoru Odpovědět  +1 22.1.2015 8:20
Avatar
anticary
Člen
Avatar
Odpovídá na vodslon
anticary:

Díky moc ... ReSharper určitě zkusím :) zrovna včera jsem na něj koukal. A tady je ten projekt(nevěděl jsem jak ho sem "upnout" tak jsem ho hodil na uloz.to... doufám že to nevadí :D teda pokud "upnout" neznamená to co jsem udělal a nedá se nahrát někam sem)

http://uloz.to/…di-ferdu-rar

Editováno 22.1.2015 17:24
 
Nahoru Odpovědět 22.1.2015 17:21
Avatar
anticary
Člen
Avatar
Odpovídá na Jan Vargovský
anticary:

Promiň ... tady máš ten projekt(sice jsem ho dal i pod komentář vodslona, ale pro jistotu :))

http://uloz.to/…di-ferdu-rar

Editováno 22.1.2015 17:23
 
Nahoru Odpovědět 22.1.2015 17:23
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 8 zpráv z 8.