Skocz do zawartości

roomy w pliku


smartboy

Rekomendowane odpowiedzi

Mam takie oto pytanie. Mam gre w exe i chce osobno roomy dać poza plik exe, że np zrobie sobie kolejny room jest we wcześniejszym ' go to next room', no i właśnie sobie bohater przechodzi do rooma, który nie był w pliku exe. Tak,że sobie mogę w trakcie tworzenia dokładać roomy a gracz nie musi ściągać całości. Idzie tak ? Wydaje mi się, że tak, bo jak co niektórzy tworzą edytory do gier to właśnie w osobny plik jest zapisywany level. Pomóżcie. :sp_ike:

Odnośnik do komentarza
Udostępnij na innych stronach

zazwyczaj wszystko co chcesz miec w roomu masz juz w grze, zatem wystarczy zapisac i pozniej wczytac polozenie instancji v roomu.

uzyj funkce:

file_

room_add

jak bys chcial dodawac tez nowe objekty to v GM8 nie problem z plikow zrobic

znajdzies je v GM help *_add zapisz do search i wybieraj room , object, event lub inne co cie interesujom

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...

Ja rozumiem. Zapisujesz sobie obiekty jakie mają się pojawić w roomie do osobnego pliku. Masz do tego funkcje z przedrostkiem file_, później jak gra ma je wczytać wywołujesz funkcję room_add (po nazwie można wywnioskować co robi) i do tego roomu wstawiasz wczytane obiekty. Proste. :)

Odnośnik do komentarza
Udostępnij na innych stronach

Ja rozumiem. Zapisujesz sobie obiekty jakie mają się pojawić w roomie do osobnego pliku. Masz do tego funkcje z przedrostkiem file_, później jak gra ma je wczytać wywołujesz funkcję room_add (po nazwie można wywnioskować co robi) i do tego roomu wstawiasz wczytane obiekty. Proste. :)

Room można stworzyć wcześniej i uzupełniać go obiektami z pliku. To nawet lepsze rozwiązanie bo jakbyś za każdym razem tworzył nowy pokój żeby później wczytać do niego instancje to w końcu nie starczyłoby Ci pamięci w komputerze. ;P

Odnośnik do komentarza
Udostępnij na innych stronach

Room można stworzyć wcześniej i uzupełniać go obiektami z pliku. To nawet lepsze rozwiązanie bo jakbyś za każdym razem tworzył nowy pokój żeby później wczytać do niego instancje to w końcu nie starczyłoby Ci pamięci w komputerze. ;P

 

No dobra może by tak bardziej szczegółowo.Mam room 'pustak'.Zapisuje np obiekt_lampa do pliku jego płożenie x i y a jak będe mieć 2 lampy to wtedy jak? Mam zapisywać to do notatnika i potem wczytywać tzn ini czy jak,bo sam nie wiem.Nie używałem funkcji 'file'.Pomóżcie nam,ja chcę zrobić edytor map do stategii niczym swat tylko,że o najemnikach. :sp_ike:

Odnośnik do komentarza
Udostępnij na innych stronach

Nie bardzo o to mi chodzi...

Chodzi mi o to, że gracz ma moją grę. Pobiera folder z roomami. Gra wczytuje roomy z tego folderu.

Chyba, że to o to chodzi...

Nie rozumiem :huh:

-------------------

EDIT:

-------------------

Ok, zaczynam powoli rozumieć tylko jeszcze popróbuję jak to działa w praktyce... |Edit:| Tylko jeszcze nie wiem jak zapisać obiekt do pliku (używałbym tego jako dodatki do gry, więc jak to zrobić?)

(Tylko, że z tego co piszecie wychodzi jak dodać obiekty z osobnego pliku do roomu. Ja chcę dodać room do gry z osobnego pliku. Jest to możliwe?)

Odnośnik do komentarza
Udostępnij na innych stronach

Nie bardzo o to mi chodzi...

Chodzi mi o to, że gracz ma moją grę. Pobiera folder z roomami. Gra wczytuje roomy z tego folderu.

Chyba, że to o to chodzi...

Nie rozumiem :huh:

 

No mi też,że gracz ma exe a Ty możesz robić nowe plansze i on ściąga rooma,wczytuje się i sobie gra.

Odnośnik do komentarza
Udostępnij na innych stronach

fajne jest miec swoj editor ktory zapisuje roomy i objekty do pliku.

zapis do pliku (wybieracie bin/ini/txt) w formacie ktory wy wymyslicie.

format ulozienia danych moze byc dowolny bo to zas wy bedziecie odczytywac ten format w samej grze.

 

mysle ze niepisalisce nic o GM:S a to dobrze bo tak to zupelnie inna sprava. v gm8 niema problemu

 

zapisujecie wzystkie wazne parametry i zmienne.

to dotyczy jak zapisu rooma, tak zapisu objektu.

jezeli ma byc w roomie nowy objekt, ktory w grze niema, to musicie go zbobic znow przez:

- objekt_add

- event_add

widz help

 

jezeli objekt jest juz w gre to tylko zapisujecie do pliku jego id, x, y, i to co jest inne od originalnego objektu.

by potem moc poprawnie odtworzyc objekt w roomie.

 

doteraz mailem bardzo malo czasu, ale moze po nowym roku sie to poprawi( obi :) )

to jak by bylo cos niejasnego, to moze pozniej pokaze jakis przyklad

Odnośnik do komentarza
Udostępnij na innych stronach

fajne jest miec swoj editor ktory zapisuje roomy i objekty do pliku.

zapis do pliku (wybieracie bin/ini/txt) w formacie ktory wy wymyslicie.

format ulozienia danych moze byc dowolny bo to zas wy bedziecie odczytywac ten format w samej grze.

 

mysle ze niepisalisce nic o GM:S a to dobrze bo tak to zupelnie inna sprava. v gm8 niema problemu

 

zapisujecie wzystkie wazne parametry i zmienne.

to dotyczy jak zapisu rooma, tak zapisu objektu.

jezeli ma byc w roomie nowy objekt, ktory w grze niema, to musicie go zbobic znow przez:

- objekt_add

- event_add

widz help

 

jezeli objekt jest juz w gre to tylko zapisujecie do pliku jego id, x, y, i to co jest inne od originalnego objektu.

by potem moc poprawnie odtworzyc objekt w roomie.

 

doteraz mailem bardzo malo czasu, ale moze po nowym roku sie to poprawi( obi :) )

to jak by bylo cos niejasnego, to moze pozniej pokaze jakis przyklad

No właśnie w tym problem!

 

1. Jak zapisywać te obiekty?

2. Mam GM 8.0 Pro, więc bez obaw :)

3. A jak zapisywać roomy do pliku i odtwarzać je z folderu?

Odnośnik do komentarza
Udostępnij na innych stronach

1, zapis objektu do file

-mowis sobie struktura file bedzie taka:

-- id_objektu(1byte), x(2byte), y(2byte), hp(1byte), direction(8 axis ... 1byte), speed (1byte) . 8 byte na jeden objekt a na 9. byte jest drugi objekt. i tak dalej.

- otwierasz file_xxx_open (xxx = bin/text/ini. bin jest fajny)

- zapisujesz wszystkie objekty wedlog struktury ktoro sobie ustaliles.

- zamykasz file_

 

do rooma by wczytac takto zapisane objekty robisz to samo, ale zamiast zapisiwac zmienne objektu do file, to je wczytujes z file do zmiennych _id, _x, _y, _hp, _direction, _speed.

te uzyjesz do stwrorzenia instancji v roomie

-- id_instancji=instance_create(_x,_y,_id_objektu)

-- id_instancji.hp=_hp

-- id_instancji.direction=_direction

-- id_instancji.speed=_speed

 

2, no to fajnie :)

 

3, podobno jak objekty tylko zapisujesz inne zmienne

poczytaj o:

room_add()

room_instance_add(ind,x,y,obj)

room_set_

Odnośnik do komentarza
Udostępnij na innych stronach

1, zapis objektu do file

-mowis sobie struktura file bedzie taka:

-- id_objektu(1byte), x(2byte), y(2byte), hp(1byte), direction(8 axis ... 1byte), speed (1byte) . 8 byte na jeden objekt a na 9. byte jest drugi objekt. i tak dalej.

- otwierasz file_xxx_open (xxx = bin/text/ini. bin jest fajny)

- zapisujesz wszystkie objekty wedlog struktury ktoro sobie ustaliles.

- zamykasz file_

 

do rooma by wczytac takto zapisane objekty robisz to samo, ale zamiast zapisiwac zmienne objektu do file, to je wczytujes z file do zmiennych _id, _x, _y, _hp, _direction, _speed.

te uzyjesz do stwrorzenia instancji v roomie

-- id_instancji=instance_create(_x,_y,_id_objektu)

-- id_instancji.hp=_hp

-- id_instancji.direction=_direction

-- id_instancji.speed=_speed

 

2, no to fajnie :)

 

3, podobno jak objekty tylko zapisujesz inne zmienne

poczytaj o:

room_add()

room_instance_add(ind,x,y,obj)

room_set_

Gdzie jest to całe bin??????!!!!!!!!!!!!!!!!

Odnośnik do komentarza
Udostępnij na innych stronach

dokladnie :)

 

tez pisalem bys uzyl help a w nim vystarczy napisac file_ i mozes dowoli wybierac wedlog tego co cie interesuje.

 

mysl o mnie ze jestem za leniwy by napisac calo komende, kdyz kopiowanie helpu uwazam za zbedne

 

ja zawse o dobrych programatorach myslalem, ze to lenie.

bo zamiast pisac dlugie pentle zmieniajo algorytm, skracajoc tym kod z kilkuset linijek na zaledwie dziesec :thumbsup:

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...
dokladnie :)

 

tez pisalem bys uzyl help a w nim vystarczy napisac file_ i mozes dowoli wybierac wedlog tego co cie interesuje.

 

mysl o mnie ze jestem za leniwy by napisac calo komende, kdyz kopiowanie helpu uwazam za zbedne

 

ja zawse o dobrych programatorach myslalem, ze to lenie.

bo zamiast pisac dlugie pentle zmieniajo algorytm, skracajoc tym kod z kilkuset linijek na zaledwie dziesec :thumbsup:

W moim help nie wyszukuje "file_" :( Jest to gdzieś w internecie o przeczytania?

-----

I jakby się dało. Jest jakiś poradnik przykład?

Odnośnik do komentarza
Udostępnij na innych stronach

ereg ma bardzo dobry pomysł z plikami binarnymi :) Jednak, będą one [bardzo] łatwe do przerobienia, więc przed odczytaniem / zapisem moim zdaniem trzeba by to było potraktować jakimś prostym szyfrem, np. XOR przez dowolną sól. Zapobiegnie to trochę oszukiwaniu.

Można wiedzieć gdzie dokładnie ereg to trzyma? przeszukuję go i nic...

Odnośnik do komentarza
Udostępnij na innych stronach

1, zapis objektu do file

-mowis sobie struktura file bedzie taka:

-- id_objektu(1byte), x(2byte), y(2byte), hp(1byte), direction(8 axis ... 1byte), speed (1byte) . 8 byte na jeden objekt a na 9. byte jest drugi objekt. i tak dalej.

- otwierasz file_xxx_open (xxx = bin/text/ini. bin jest fajny)

- zapisujesz wszystkie objekty wedlog struktury ktoro sobie ustaliles.

- zamykasz file_

 

do rooma by wczytac takto zapisane objekty robisz to samo, ale zamiast zapisiwac zmienne objektu do file, to je wczytujes z file do zmiennych _id, _x, _y, _hp, _direction, _speed.

te uzyjesz do stwrorzenia instancji v roomie

-- id_instancji=instance_create(_x,_y,_id_objektu)

-- id_instancji.hp=_hp

-- id_instancji.direction=_direction

-- id_instancji.speed=_speed

 

2, no to fajnie :)

 

3, podobno jak objekty tylko zapisujesz inne zmienne

poczytaj o:

room_add()

room_instance_add(ind,x,y,obj)

room_set_

tu masz posta erega, a tu tutorial do szyfrowania metodą XOR

https://gmclan.org/index.php?czytajart=58 z tego co jest tu napisane można już na pewno napisać spoko edytor mapek. ;P

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1 miesiąc temu...

Ok nauczyłem się tego XOR'a i co dalej?

Tu chodzi o dodawanie obiektów nie? Jak tak to to robię pobocznie, bo potrzebne mi roomy w folderze

Katalog z grą:

 

_____________________________________________

Gierka|Miliony DLL'ów|Jeszcze więcej DLL'ków

_____________________________________________

Muzyczki|Jakiś tam folder|Folder o nazwie roomy

_____________________________________________

 

 

 

 

Folder o nazwie roomy:

 

Tu są roomy :o

 

 

 

 

Włącza się gierka i coś tam robi

 

 

 

I ROOMY Z FOLDERU "wchodzą do gry"

 

---------------^----<<<--- To miała być strzałka :D

Jak to zrobić??? |

Odnośnik do komentarza
Udostępnij na innych stronach

...

Jak to zrobić??? |

ktory punkt z tego tutaj ci nejest jasny a konkretne co w nim jest problem?

chyba niechcesz odrazu gotowy przyklad? :)

 

1.1, zapis objektu do file

-mowis sobie struktura file bedzie taka:

-- id_objektu(1byte), x(2byte), y(2byte), hp(1byte), direction(8 axis ... 1byte), speed (1byte) . 8 byte na jeden objekt a na 9. byte jest drugi objekt. i tak dalej.

- otwierasz file_xxx_open (xxx = bin/text/ini. bin jest fajny)

- zapisujesz wszystkie objekty wedlog struktury ktoro sobie ustaliles.

- zamykasz file_

1.2,do rooma by wczytac takto zapisane objekty robisz to samo, ale zamiast zapisiwac zmienne objektu do file, to je wczytujes z file do zmiennych _id, _x, _y, _hp, _direction, _speed.

te uzyjesz do stwrorzenia instancji v roomie

-- id_instancji=instance_create(_x,_y,_id_objektu)

-- id_instancji.hp=_hp

-- id_instancji.direction=_direction

-- id_instancji.speed=_speed

 

2, ...

 

3, podobno jak objekty tylko zapisujesz inne zmienne

poczytaj o:

room_add()

room_instance_add(ind,x,y,obj)

room_set_

 

4, dla working directory+ subfolder przeczytaj tutaj

 

5, obecnie zrob:

5.1, zrob gre

5.2, w niej zrob roomy i instancje

5.3, otworz file wedlog 4,

5.3, wybrane roomy zapisz wedlog 1.1,

5.4, dokoncz czego treba i gra gotowa. tylko dac graczowi.

5.6, gracz odpala gre

5.7, gra wczyta roomy wedlog 1.2 i 3,(room_add)

5.8, zrobi objekty w grze wedlog object_add(), object_event_add()

5.9, wlozy instancje do rooma wedlog 3,(room_instance_add)

5.10, gracz moze grac

 

nikt niemowil, ze bedzie proste :)

Odnośnik do komentarza
Udostępnij na innych stronach

Ok ja na razie z tym kończę (w tej chwili to mnie przerasta :D)

Jeszcze jedno, wracam do tematu; czy jest sposób, aby room, który stworzyłem w Game Maker przenieść do pliku, dać do pobrania i zrobić tak aby gra go wczytała? Np.: room nazwałem room1.[no właśnie co ma być po kropce] i gra wczytuje room np gdyby była taka funkcja room_add_file(room1.[coś]) i potem room_goto(room1) ???

Trochę pomieszałem, ale chyba wiadomo o co chodzi nie?

Odnośnik do komentarza
Udostępnij na innych stronach

Normalnie, raczej nie ma takiej możliwości. Pytanie tylko w czym problem ?

Przykład edytora, wraz ze wczytaniem mapy z pliku *.txt masz gdzieś na stronie, a jeśli chodzi o kodowanie, to nawet jak xor'a nie możesz ogarnąć, to zawsze są inne rodzaje kodowania. Próbuj nikt nie powiedział, że będzie łatwo. Trzeba tylko nad tym chwile posiedzieć.

Szyfrowanie XOR

Szyfrowanie DES

Szyfr Cezara

I wiele innych... Od biedy to wystarczyłoby, jakbyś w odpowiedni sposób poprzesuwał znaki.

Na angielskim forum GM'a też coś zapewne znajdziesz.

Odnośnik do komentarza
Udostępnij na innych stronach

ale durnot sie zdolalem tu naczytac, pare perelek bylo tylko. pytania do autora:

1. plik ma byc nieczytelny dla gracza, czy moze byc w formacie zdolnym do edycji w edytorze?

2. na kiedy to chcesz?

Odnośnik do komentarza
Udostępnij na innych stronach

zrobilbym Ci po prostu DLLa do zapisu/odczytu obiektów i ich właściwości do/z plików JSON oraz binarnego, co byś mógł to użyć tak jak opisałeś: load_room("room.bin") / save_room("room.json")

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