Podczas tworzenia gry MMORTS stajemy przed problemem gdzie "trzymać" informacje o budynkach(cena,obraz,opis itp), mamy dwa wyjścia : Trzymanie informacji w bazie MySQL lub przechowywanie wszystkiego w pliku/ach.
MySQL
Najpierw rozpatrzmy opcję bazy MySQL. tworzymy tabelę info_budynki:
id int(11)
nazwa varchar(255)
obraz varchar(255)
opis text
metal int(11)
glina int(11)
drewno int(11)
ludzie int(11)
max_poziom int(11)
wymagania varchar(255)
Struktura bazy mówi sama przez się
Więc tak mamy taką tabelę i dodajemy do niej rekord - przykładowy budynek. Następnie by wyświetlić informacje o nim musimy wykonać zapytanie do bazy(tabeli) poprzez funkcje mysql_fetch_array() oraz mysql_query() (Zakładam że macie już plik z podłączeniem do bazy MySQL):
Później wywołując $zap['opis'] ukaże nam się opis budynku o nazwie Ratusz. Przykład pokazuje wyświetlenie tyko jednego budynku, a co jeśli będzie ich kilka?
Oczywiście nie będziemy powielać powyższego zapytania n razy zmieniając tylko warunek WHERE. Do wyświetlenia "wszystkich" budynków użyjemy pętli
while(){}
na początku musimy wywołać zapytanie - lecz będzie ono zmienione:
Przykład wyświetli opisy wszystkich budynków jakie są aktualnie w tabeli.
Prawda że łatwe? Ale troszkę nieoptymalnę, bo jeśli chcemy wyświetlić budynek z jakimkolwiek warunkiem musimy wysyłać zapytania do bazy.
+ Prostota edycji(Można dodać budynki do panelu admina gry i z jego poziomu je edytować)
- Zbyt dużo zapytań do bazy(Zależnie od przypadku)
Pliki
Zajmijmy się teraz infem na temat budynków poprzez plik/i.
Ja jednak wolę by info było w jednym pliku toteż tak zrobię
Stwórzmy plik budynki.php. W nim wszystko będzie się "działo".
Na początek stworzymy przykładowy budynek - Ratusz:
Stworzyliśmy tu tablicę dwuwymiarową w którą "wpakowaliśmy" dane o budynku, Oczywiście by dodać kolejny budynek powielamy powyższy przykład zmieniając tylko "dane". Teraz do pliku gdzie chcemy wyświetlić info o budynkach dołączamy plik budynki.php poprzez funkcje include()
Oczywiście moja ścieżka do pliku nie musi być taka jak wasza. Teraz w pliku gdzie dołączyliśmy info o budynkach by wywołać jakiekolwiek dane wstarczy dać
Powyższy przkład wyświeli Ratusz jest głównym budynkiem osady. Prawda że prostę? Teraz pytanie: Jak wyświetlić kilka budynków naraz bez potrzeby
ciągłego pisania echo ? To proste! Wykorzystamy pętle foreach(){}
Pętla wyświetli wszystkie nazwy oraz opis budynków które są w tablicy $budynki. Prostę i szybkie nieprawdaż?
+ Szybkość i prostota działania
- Do każdego pliku musimy dołączać plik budynki.php, edycja z PA nie jest możliwa
To już koniec mojego krótkiego artykułu. Myślę że wybierzecie dobrze dla was i dla waszej gry:) Pozdrawiam.