Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Piszemy gre Cookie clicker!


Rekomendowane odpowiedzi

Opublikowano

Siemano, ostatnio bawiłem się, tak dla beki w cookie clickera, gdzie ustawiało się twarz, jednego z moich znajomych. Rozbudowałem nieco 'grę' i chciałbym się podzielić z wami tym co zrobiłem :3

 

Więc. Robicie projekt > Windows form aplication.

 

Poustawiajcie sobie przyciski, mozecie zrobić coś jak w oryginalnym cookie clickerze. 89

 

Tak więc. Kliknijmy 2x w form1.

Zjedź wyżej, gdzie zobaczysz "public partial class r1 : From" i wklej ten kod.

 

Cytat

 

public partial class r1 : Form

{
 
 
float cookies;
float pointers;
float beton;
float gruz;
float teleporter;
float strg;
float morda;
 
//KASA
 
float pprice;
float bprice;
float gprice;
float dprice;
float x;
float d1price;
float tprice;
float strgprice;
float mordaprice;
 
//levele
float lp;
float lb;
float lg;
float lx;
float lx1;
float lt;
float ls;
float lm;

 

Tłumaczyć chyba nie trzeba, wszystko użyje się później.

 

Te pierwsze rzeczy to uprgade i cookies, czyli ilość cookiesów.

 

Drugie rzeczy, to cena, którą ustalicie dowolnie. Kod za chwile na dole ^^

Trzecie rzeczy, to jak komentarz mówi poziomy. Poziomy danych ulepszeń. Pisane skrótowo, czyli tylko pierwsza litera hyhy ^^

 

 

 

 

Okej. Mamy już zmienne. Czas na resztę.

 

Form1:

 

 


        public void Form1_Load(object sender, EventArgs e)
        {
            Reload.Start();
            label3.Text = x.ToString();
            x = 1;
            Czoko.Start();
            mordaprice = 5000;
            pprice = 20;
            bprice = 500;
            gprice = 5000;
            dprice = 30;
            d1price = 1200;
            d2price = 2400;
            d3price = 10000;
            d4price = 50000;
            tprice = 30000;
            strgprice = 70000;
            Counter.Start();
            label1.Text = cookies.ToString();
            textBox1.Text = pprice.ToString();
            textBox3.Text = gprice.ToString();
            textBox2.Text = bprice.ToString();
            textBox4.Text = dprice.ToString();

 

 

 

No więc. Zapomniałem napisać ważnej rzeczy. Timery.

Stwórzcie timery o nazwach:

Counter, TPointer, Beton, Gruz, Czoko, Reload, Teleporter, Strg.

W properties gdzie jest interval ustawcie według upodobania, Counter ustawcie na 1.

 

Okej. Więc w form1 ustawiacie price (wiem, pisze się prize, ale nvm. xD) ile ma kosztować cookies.
Następnie macie Textoboxy, gdzie wyświetlana będzie ich cena.

 

To tyle na form1.

 

Counter_Tick:

Cytat

 

label1.Text = cookies.ToString();

Czyli wskaźnik cookies w label 1, polecam ustawić w lewym górnym rogu :)

 

Wchodzicie do button2_Click

        {
            textBox1.Text = pprice.ToString();
 
 
 
            if (cookies >= pprice) 
            {
                TPointer.Start();
                pointers = pointers + 1;
                cookies -= pprice;
                pprice = pprice += 8;
                lp += 1;
                label4.Text = lp.ToString() ;
                
            }
        }
Więc tu nie ma nic, jak ustawienie kupna, zwiększenie lvl po kupieniu i zaczęcia działania timera.
Jeśli nasza liczba cookies jest większa bądź równa cenie to robimy rzecz w nawiasie.
 
TPointer_Tick:
cookies = cookies + pointers;
Nie chce mi się ciągle powtarzać tego, więc w każym timerze wpiszcie coś takiego, zamiast pointers wpiszcie odpowiadającą zmienną float.
price = pprice +=8; / oznacza to zwiększenie ceny po kupieniu.
 
 
Button3:

            textBox2.Text = bprice.ToString();
            if (cookies >= bprice){
            Beton.Start();
            beton = beton + 1;
            cookies -= bprice;
            bprice = bprice += 500;
            lb += 1;
            label5.Text = lb.ToString();
            }

w sumie to samo co w button2.

 

button4:

            textBox3.Text = gprice.ToString(); 
            if (cookies >= gprice)
            {
                Gruz.Start();
                gruz = gruz + 1;
                cookies -= gprice;
                gprice = gprice += 4000;
                lg += 1;
                label6.Text = lg.ToString();
            }
 
Button4:
 
czoko:
[code]

            progressBar1.Value += 1;
            if (progressBar1.Value == 100)
            {
                Czoko.Stop();
                progressBar1.Value = 0;
                cookies += 20000; 
                Czoko.Start();
 
 
            }
[/code]

Więc czoko - czekolada. (GIMBY CHWAST LUBI W CZOKO HYHY .. ) 
Czekolada to takie coś, gdzie macie progressbar, to gdy on sie załaduje, jest ta 'czekolada' za którą dostajecie 20k kasy, polecam ustawić na 2-3 minuty.
 
 
Button5:
[code]

            textBox4.Text = dprice.ToString();
            if (cookies >= dprice)
            {
                if (dprice <= 500)
                {
                    x += 1;
                    cookies -= dprice;
                    dprice = dprice += 50;
                    lx += 1;
                    label7.Text = lx.ToString();
                }
                if (lx >= 10) { cookies -= dprice; dprice += 2530; x += 1; lx += 1; label7.Text = lx.ToString(); }
 
            }

[/code]
 
Tutaj sie pobawiłem, usawiłem że na początku ulepszenie 'ręki' kosztuje 30cookies, i tak aż do 10 lvl, po 10 lvl kosztuje co lvl o 2530 drożej.
Ręka ta zwiększa ilość cookies za kliknięcie.
 
Reload_Tick:

[code]

            textBox7.Text = d1price.ToString();
            textBox1.Text = pprice.ToString();
            textBox3.Text = gprice.ToString();
            textBox2.Text = bprice.ToString();
            textBox4.Text = dprice.ToString();
            label3.Text = x.ToString();
            textBox5.Text = tprice.ToString();
            textBox6.Text = strgprice.ToString();

[/code]
 
Jest to timer reload, ustaw w nim najlepiej 1 w interval, odświeża on wszystkie ceny itp.
 
Button6:
[code]

            textBox5.Text = tprice.ToString();
            if (cookies >= tprice)
            {
                Teleporter.Start();
                cookies -= tprice;
                tprice = tprice += 25000;
                lt += 1;
                label8.Text = lt.ToString();
                Teleporter.Start();
                teleporter = teleporter + 1;
            }

[/code]
Rutyna ..  Dlatego też reszy buttonów nie napiszę, pozmieniajcie sobie niektóe watrości, troche samodzielności :3
 
Button1:

[code]
cookies = cookies += x;
Nic innego jak dodanie 1 cookiesa za kliknięcie, zmienna x określa ile cookies dostaniemy za kliknięcie.
 
 
W sumie to chyba tyle. Poprawki mile widziane, konstruktywna krytyka również.
Wcześniej działałem na C++/Visual basic. Poziom denny, nawet nie podstawowy.
To mój pierwszy projekt w C#

sygnatura niezgodna z regulaminem forum mpc rozdział II pkt. 7

Opublikowano

Em, Lmfao Baby po co refujesz temat który jest na górze i jest tutorialem o.O.

Mniejsza, co do projektu to spoko, tak jak powiedział Arkeus optymalizacja leży. Lepiej już spakować to w jeden Timer.
Dodatkowo mam pewną sugestie, dodawanie ceny na sucho jest... nudne ^^" lepiej napisać coś co będzie tą cenę procentowo zmieniać, np:

int cena;
//Int jest tu po to żeby nie wychodziły sumy typu 1/2 ciasteczka
cena = cena + Convert.ToInt32(Convert.ToDouble(cena) * 0.2));

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir nicht ganz sicher."
~A. Einstein

  •  carbonx zmienił(a) tytuł na Piszemy gre Cookie clicker!

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...