Skocz do zawartości
Arekadiusz

Lokalizacja początkowa

Rekomendowane odpowiedzi

Jak po wciśnięciu jakiegoś przycisku zapisać lokalizację (x i y) np. kilku obiektów1, obiektu2, kilków obiektów3 itd. do pliku tekstowego(razem z ich nazwami), tak aby potem gra mogła to odczytać i ponownie ułożyć obiekty na te same pozycje?

 

Z góry dziękuje za pomoc.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Być może to Ci pomoże, bym sam spróbował napisać kod, ale nie chcę Cię wprowadzać w błąd. Klik.

 

EDIT

 

No ej, Ty na górze xD

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Do pliku txt zapisuj object_index, x i y obiektu (file_text_write_real(fileid,x)). Pomocna okaże się komenda with all {kod}. Jeżeli na mapie są obiekty, których nie chcesz zapisywać do pliku txt, użyj w with all: if(object_index!=xx&&object_index!=xx1...). Zapisuj wszystko do oddzielnych linijek w txt (poszukaj w helpie). Na końcu otwierasz plik txt i usuwasz wszystko co jest po przecinkach oraz spacje. (Ja tak musiałem robić, bo zapisywało mi tak: 1,0000 i miałem spacje miedzy cyfra a krawędzią notatnika).

Przy wczytywaniu sprawdzasz warunek, czy plik txt się nie skończył (poszukaj w helpie). Następnie wczytujesz trzy kolejne zmienne. (pierwsza to object_index, druga x i trzecia y). Tworzysz obiekt instance_create(zmienna2,zmienne3,zmienna1).

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

No to może niech poczyta to co Mu tam dałem, są tam przykłady wczytania i zapisu :). Np. jak naciśniesz przycisk zapisu to tworzy Ci plik ini w którym zapisuje Ci y i x obiektów. A jak dasz wczytaj to patrzy na te liczby x i y i niech tam te obiektu teleportuje :D. W każdym razie ja bym tak zrobił :).

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Arekadiusz:

fileid to nazwa twojego pliku txt, np:

GML
fileid="costam.txt";//zamiast fileid możesz wpisać cokolwiek, to musi być zadeklarowane zanim dokonasz zapisu</span>

file_text_write_real(fileid,x), fileid-do którego pliku ma zapisać, x-zmienna(jakaś wartość) do zapisu

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Arekadiusz:

fileid to nazwa twojego pliku txt, np:

GML
fileid="costam.txt";//zamiast fileid możesz wpisać cokolwiek, to musi być zadeklarowane zanim dokonasz zapisu</span></span>

file_text_write_real(fileid,x), fileid-do którego pliku ma zapisać, x-zmienna(jakaś wartość) do zapisu

 

Candy, może mój kod będzie zwariowany, ale w każdym razie u mnie działa ;D.

 

GML
ini_open( 'lokacja.ini' )

ini_write_real('Lokacja x','obiekt1',object0.x);

ini_write_real('Lokacja x','obiekt2',object1.x);

ini_write_real('Lokacja y','obiekt1',object0.y);

ini_write_real('Lokacja y','obiekt2',object1.y);

ini_close();

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Dzięki Tiger, działa!

Ale mam jeszcze pytanie:

Co zrobic gdy naprzykład na planszy są dwa obiekty0 .Jak je rozróżnic?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

to inaczej by trzeba było wpisać 78686876896.id

 

te 78686876896 to id

 

albo daj instance_nearest(object0).id

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
to inaczej by trzeba było wpisać 78686876896.id

 

te 78686876896 to id

 

albo daj instance_nearest(object0).id

 

Ale z kąd system będzie wiedział o jaki obiekt chodzi??

Najlepiej chciałbym gotowy kod bo nie moge zrozumiec tego id.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Ale z kąd system będzie wiedział o jaki obiekt chodzi??

Najlepiej chciałbym gotowy kod bo nie moge zrozumiec tego id.

 

Jak włączysz room'a i najedziesz na jakiś obiekt to na tym pasku dolnym pisze id.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Tiger:

A jeżeli chciałbym tego użyc do edytora plansz?

Wtedy nie mogę sprawdzic jaki ten obiekt ma id, ani przewidziec ile będzie tych obiektów.

Co zrobic?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

GML
with (object0)

Wtedy wszystko dzieje się w obiekcie0, w każdym osobna ----> możesz pobrać id każdego z osobna i gdzieśtam zapisać.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Ale skąd On będzie wiedział który to Assasin ;) ? Arekadiusz, szczerzę mówiąc to w tym przypadku Ci nie pomogę, mam za mało doświadczenia. Poczekaj na PsichiX'a, albo Marka S, Oni Ci pomogą :).

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
A jeżeli chciałbym tego użyc do edytora plansz?

Wtedy nie mogę sprawdzic jaki ten obiekt ma id, ani przewidziec ile będzie tych obiektów.

Możesz na obiekt kliknąć myszką i pobrać jego id. Potem odwołujesz się do obiektu przez id.

Odpal grę przez F6==>tools==>show global... masz listę obiektów i ich id :)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

po co chcesz zapisywać do pliku id obiektu, skoro przy wczytaniu/tworzeniu obiektu i tak zostanie mu nadane inne, nowe id?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

Tylko 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ę tutaj.

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×