IF-ologia - Tworzenie gier

in #pl-gamedev9 years ago

Podczas ostatniego tekstu na temat tworzenia marynarzyka rozpoczęliśmy koncepcją ifów. Gry to w zasadzie IFologia, czyli bardzo często będziemy się tym posługiwać, dlatego pomyślałem, że warto poświęcić temu zagadnieniu cały artykuł. Oczywiście nie tylko w grach się robi IFologię, bo często w stronach internetowych (czy użytkownik wypełnił pola i czy wypełnił poprawnie i tak dalej).

Oczywiście przypomnijmy - if to "jeśli". Ale są jeszcze dodatkowe dwa człony.

Else if

Else if oznacza tyle co "jeśli nie to sprawdź". Powiedzmy, że mamy dwa paski zdrowia. Zielony oznacza, że zdrowie jest wysokie (50% i w górę), a czerwone gdy jest małe - od 1 do 49%.

if(health>=50)
{
// TO JEST KLASYCZNY IF, KTÓREGO SIĘ NAUCZYLIŚMY
// Kod na zielone zdrowie
}
else if(health>0 && health<50)
{
// Kod na czerwone zdrowie
}

obraz.png

obraz.png

Użyliśmy tutaj else if, ale również AND o którym była mowa wcześniej.

Else

Else oznacza wszystko co nie jest w ramach tego. Skoro życie mamy od 1 do 49 (czerwone) i od 50 w górę (zielone) to co będzie jak będzie 0? Technicznie jest to dziura spoza ifa. I tym zajmuje się else - gdy żaden warunek nie jest spełniony włącza się kod w Else.

if(health>=50)
{
// TO JEST KLASYCZNY IF, KTÓREGO SIĘ NAUCZYLIŚMY
// Kod na zielone zdrowie
}
else if(health>0 && health<50)
{
// Kod na czerwone zdrowie
}
else
{
// Kod na trupa
}

obraz.png

obraz.png

If to nieograniczone coś

If to podstawowa forma sprawdzenia. Można praktycznie sprawdzać mnóstwo elementów - Czy dany kod się poprawnie wykonał, czy jest tekstem czy cyfrą, czy gracz żyje, ile kart ma gracz, ile naboi ... to wszystko trzeba pisać i uwzględniać. Dlatego ta lekcja jest podstawą tworzenia gier. Pewnie da się stworzyć jakieś gry bez ifów, ale bez tego nie ma co na poważnie myśleć nawet o amatorskim tworzeniu, na którym się skupiamy ;)

Nam się przyda do sprawdzania czy wygraliśmy, przegraliśmy czy zremisowaliśmy.

Kod do przetestowania

Nie będę wrzucał binarnych plików, gdyż powinniście sami kompilować rzeczy ;)
http://gmclan.org/up6184_14_if.html

Czego się nauczyliśmy - szybkie podsumowanie lekcji.

  • Ify - sprawdzanie warunku
  • Else if - jeśli pierwsze sprawdzenie jest nieprawidłowe, to sprawdź inny warunek
  • Else - jeśli żaden z powyższych warunków nie jest spełniony, wykonaj to.
  • TRZEBA TEGO SIĘ NAUCZYĆ
  • If > Switch :P
Sort:  

A trzeba było się uczyć asemblera. Wiedziałbyś, że switche i tak są kompilowane do if-ów. Są one tylko ułatwieniem dla programisty, ale kod wynikowy na ifach będzie taki sam jak na switchach :)

Ale i tak podstawowa forma sprawdzenia to:

text eax, eax
je <jump>

;)

No nie znam asma :P W każdym razie if w zasadzie jest wydajniejszy jak się go rozpisze, bo może działać po drzewku.

To tak dla przykładu - chcemy wykonać coś, gdy i=64

  • Czy liczba jest większa od 50? Tak
  • Czy większa od 75? Nie
  • Czy większa od 63? Tak
  • Czy większa od 70? Nie
    (...)

I w ten sposób zamiast 63 sprawdzeń zrobisz z 10 :D

Coin Marketplace

STEEM 0.04
TRX 0.32
JST 0.098
BTC 62857.89
ETH 1829.62
USDT 1.00
SBD 0.38