Skocz do zawartości

Gra, a edytor to osobny plik?


Roki

Rekomendowane odpowiedzi

Mam sobie grę, a w niej edytor mapek, no i moje pytanie brzmi, jak zrobić osobny edytor map, bez PRO? A jeżeli się da to jak to wczytywać w grze?

 

Aha, jeszcze jedno, gdzieś widziałem przykład, ale nie moge go znaleść, był bez PRO, a w nim było savewowanie, że sami wybieramy nazwe pliku i gdzie zapisze? Ma ktoś może?

Odnośnik do komentarza
Udostępnij na innych stronach

Na stronie był na 100% artykuł o pracy na plikach ini. A jak nie było to jest w dokumentacji przetłumaczone.

 

W edytorze zapisujesz wszystkie potrzebne informacje o mapie do pliku ini, a w grze robisz by wczytywało te informacje.

Operacje na ini są bardzo proste więc myślę sobie poradzisz :)

 

Tyle, że nie jestem pewny czy to jest dostępne bez PRO.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie pamiętam nazw funkcji do ini więc będę umownie uzywał ini_zapisz i ini_wczytaj, a ty sam sobie sprawdzisz jak one się nazywały :P (argumenty też jakoś inaczej były, ale to sobie sprawdzisz)

 

Ogólnie chodzi o to, że na przykład w edytorze przechowujesz w jakiejś zmiennej (nazwijmy ją n) ile obiektów masz ustawionych i zapisujesz do pliku ini liczbę obiektów które ustawiłeś na mapie ini_zapisz("liczba",n)

potem dla każdego obiektu ustawionego na mapie zapisujesz do ini jaki to obiekt i jego pozycje x i y (ewentualnie inne potrzebne ci zmienne).

ini_zapisz("obiekt1",typ_obiektu);

ini_zapisz("obiektx1",x_obiektu);

ini_zapisz("obiekty1",y_obiektu);

i tak dla każdego obiektu.

 

Potem gra wczytuje sobie zmienną n. n=ini_wczytaj("liczba")

Dzięki temu wie ile obiektów musi wczytać i stworzyć. Więc robi to n razy w pętli

 

for(i=1;i<=n;i+=1)

{

a=ini_wczytaj("obiekt"+string(i));

b=ini_wczytaj("obiektx"+string(i));

c=ini_wczytaj("obiekty"+string(i));

instance_create(a,b,c); //mogłem pomylić kolejność argumentów

}

 

ogólnie to jakoś tak będzie :)

Odnośnik do komentarza
Udostępnij na innych stronach

Nie wiem jak to pozamieniać :P, co mam tam dać jako typ_obiektu?

GML
ini_open(nazwa) - Wczytuje plik ini. Plik musi być w tym samym folderze co gra, a jeżeli go nie ma, tworzy go.

ini_close() - Zamyka aktualnie otwarty plik ini.

ini_read_string(sekcja,klucz,domyślna) - Czyta ciąg znaków(string) z wskazanej sekcji i klucza. Kiedy klucz albo sekcja nie istnieje wartość domyślna jest zwrócona.

ini_read_real(sekcja,klucz,domyślna) - Czyta wartość rzeczywistą(real) z wskazanej sekcji i klucza. Kiedy klucz albo sekcja nie istnieje wartość domyślna jest zwrócona.

ini_write_string(sekcja,klucz,wartość) - Pisze ciąg znaków(string) dla wskazanej sekcji i klucza.

ini_write_real(sekcja,klucz,wartość) - Pisze wartość rzeczywista(real) dla wskazanej sekcji i klucza. Bug w GM 6.1 sprawia, że liczby zawsze zapisują się z kilkunastoma pozycjami po przecinku. Zalecamy używanie ini_write_string(sekcja,klucz,string(wartość)) dla uniknięcia błędów.

ini_key_exists(sekcja,klucz) - Sprawdza czy dany klucz istnieje w danej sekcji.

ini_section_exists(sekcja) - Sprawdza czy dana sekcja istnieje

ini_key_delete(sekcja,klucz) - Usuwa wskazany klucz z wskazanej sekcji.

ini_section_delete(sekcja) - usuwa wskazaną sekcje.

 

Tu są funkcje z dokumentacji, pozamieniasz?

Nie śmiać się ze mnie, nie umiem nic na ini robić :jezor:

 

 

@EDIT: A co z ID obiektów?

Odnośnik do komentarza
Udostępnij na innych stronach

sekcje to niech będą poszczególne mapy, a klucze to te wszystkie dane danej mapy czyli liczba obiektów, typy poszczególnych obiektów i ich pozycje...

 

Nakreśliłem ci ogólnie "algorytm". Powinieneś sobie poradzić z zaimplementowaniem tego.

 

Zrobię jakiś przykładzik może później jak mi się zachce.

Zresztą był chyba jakiś przykład na stronie. Pewno był on taki że gra i edytor był jednym plikiem, ale to przecież nie problem sobie przerobić.

Odnośnik do komentarza
Udostępnij na innych stronach

ODŚWIEŻAM

 

Dajcie ktoś chociaż cały kod, na to że tworzy i zapisuje do ini, i na to wczytywanie, nie umiem sam tego zamienić na tamto, na co zamienić ini_zapisz? Dajcie normalnie napisany kod...

@EDIT:

Wiem, niestety mam wolnego neta i czsami klikam kilka razy :/

Może pomożesz :D

Odnośnik do komentarza
Udostępnij na innych stronach

Roki: Usunąłem te zbędne powielone posty, ale pamiętaj na przyszłość: jest opcja EDIT dla posta i z niej korzystaj aby nie pisać kilku postów pod rząd. Double posty itp są dozwolone tylko w przypadku umieszczenia na prawdę ważnych informacji wnoszących wiele do tematu.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...