[#6]
Re: Ogolne zagadnienie programistyczne - jak napisac mordobicie
@Lorak,
post #1
Kurde, przyznam się szczerze, że programuję już sporo latek. Nie jestem w tym dobry, ot, przeciętnie-dobry, niewybitnie błyskotliwy ale pomysłowy i ambitny choć te ambicje to mógłbym se w kieszeń włożyć :P. Od dłuższego czasu siedzę w PHP, wcześniej był AmigaE trochę, więcej Blitz2, trochę Amosa, komodowych bejzoli wszelakich. Nie ważne.. Powiedzmy, że potrafię sobie wyobrazić dany projekt, gdy go piszę, choćby praca nad zawiłym Ondorr Drakmo. I wiesz co, Lorak? Ja nie wiem czy ja to piszę obiektowo czy strukturalnie? Jest późno, popatrzyłem na Wikipedię.. nie kumam tego za bardzo w odniesieniu do własnych projektów. Dajcie mi przykład pisania pod PHP obiektowo i strukturalnie a powiem Wam jaka ze mnie programistyczna lama :).
Loraku, gdybym miał pisać mordobicie, zrobiłbym to tak:
1)
każdy przeciwnik opisany w osobnym pliku, system odczytuje dane takie jak prędkość, specjalne ciosy, wygląd, energię czy co tam, defence
2)
pole walki to oczywiście też jakieś bitmapy
to wszystko podpięte jest do silnika więc silnik wie jakie są postaci i pola walki.
Teraz samo w mordę bicie:
każdy cios to oczywiście osobna funkcja, jeżeli robimy kombinację klawiszy w jakiejś kolejności, za każdym naciśnięciem klawisza sprawdzane jest w funkcji (nazwijmy ją sequence() ) np: 5 ostatnich naciśniętych klawiszy. Jeżeli ułożą się w kombinację to następuje wywołanie zdarzeń w if-ach. If może prowadzić do funkcji jakiegoś ciosu, np: bigpig() bądź po prostu być zagnieżdżonym w tej funkcji sequence() pod ifami. Ja chyba strukturalnie programuję, sobie uświadamiam to ale nie wiem tego do końca :). To coś jak GOTO!!
To czy wygramy czy nie, sprawdzane jest po każdym uderzeniu poszczególnego jegomościa (my/przeciwnik):
If ($yourhp-$hit<=0){
gameover();
}
Sory, że po angielsku, ale nie lubię pisać zmiennych, etc. po polsku, bue :)
Ruchy przeciwnika/nasze to przerwania w pętli programu taktowane jakimś czasem milesekund. No jakaś pętla musi być.
Oczywiście to wszystko jest oczywiste, ale ja to tak sobie wyobrażam :). BASIC na całego, co nie? :)
Ostatnia modyfikacja: 08.05.08 00:25