Skocz do zawartości

ustawienia w grze


Rekomendowane odpowiedzi

Nie wiem czy ten temat dać tu czy do początkujących, więc proszę moda o przeniesienie w odpowiednią kategorię.

 

Przechodząc do rzeczy. Chciałbym zrobić w swojej grze opcje typu zmiana rozdzielczości, efekty (śnieg, deszcz), poziom grafiki, głośność dźwięków itd.

 

Jeżeli chodzi o rozdzielczość to wiem, że istnieje taka opcja wbudowana w gm, ale jest to ustawione domyślnie nawet jeśli ktoś ma 640x48 a jest ustawione np. 1920x1080.

 

Jeżeli chodzi o efekty to umiem zrobić np. od jakiegoś momentu aby padał śnieg itd. ale chciałbym aby sami gracze decydowali czy ich komp udźwignie takie efekty i czy warto wyłączyć. Tutaj właśnie pomyślałem o odwołaniu się do innego roomu. np. Mamy menu w którym jest ,,graj" i ,,opcje". Wchodzimy w graj i w tym momencie mamy jakiś poziom do przejścia. Jednak nasz komputer jest zbyt słaby aby udźwignąć tak wielkie obciążenie. Wtedy wchodzimy w ,,opcje'' i wyłączamy te efekty. W tym momencie ,,jakaś linijka kodu'' powinna sprawdzać czy dany sprite jest na ,,włącz" czy na ,,wyłącz".

 

Teraz mamy grafike i znowu wiem, że można ustawić domyślnie, ale nie można jej zmienić. Zastanawiając się przez dłuższy czas wykąbinowałem, aby po protu podmienić teksturki z lepszych na gorsze, ale wyszło by to zbyt dużo roboty i czasu.

 

 

 

 

Czy znacie może jakieś rozwiązanie (chodzi o linijkę kodu, a nie na 3 strony) na zainicjowaniu takiej funkcji w grze? Proszę o przesłaniu załącznika z przykładem, gdyż to ułatwi całkowicie sprawę :)

Odnośnik do komentarza
Udostępnij na innych stronach

Kiedyś bawiłem się tym co kolega, używałem opcje plików ini jako nazwe "config.cfg", buttony miały dwa sprity (0 i 1) a w ini zapisywały się:

 

[system]

Fullscreen = 1

...

 

Polecam po kliknieciu zapisac jego index i gdy wynosi zero to obiekt powodujący snieg sie usuwa :D

 

@Edit w razie coś sluze pomocą, fajnie jest jak ktos komuś pomaga w sensie odwrotnym i bierzącym O_o

Odnośnik do komentarza
Udostępnij na innych stronach

Próbowałem z full screenem i się udała, ale tak apropos, to to jest na f4 xD.

 

 

Jeszcze takie pytanko, da się zrobić tak, aby stworzył się objekt po naciśnięciu w innym roomie sprita?

 

np. W menu zaznaczam, że chce mieć śnieg i w roomie lvl 1 tworzy się objekt (0,0), który tworzy śnieg.

 

 

 

 

Z tym problemem borykam się od dawna, bo chce dodać jakieś medale np. Jeżeli zabije tego gościa to daje mi medal w innym roomie :D

Odnośnik do komentarza
Udostępnij na innych stronach

a jeśli chcesz, żeby po każdym włączeniu gry były takie same ustawienia to

 

 

ustawienia.ini

[dane]
   snieg = 1
   fullscreen=1

 

obj_snieg:

 

CREATE

 

GML
ini_open(ustawienia.ini)

ini_read_real(dane,snieg,1)

global.snieg=ini_read_real(dane,snieg,1)

ini_close()

if global.snieg=0

{

instance_destroy

}

w kliknięciu na przycisk

 

GML
ini_open(ustawienia.ini)

ini_write_real(dane,snieg,0)

ini_close()

 

Powinno działać :D

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli obj_śnieg to pojedynczy płatek śniegu, to czy nie będzie to zbyt mało efektywne rozwiązanie? tzn. żeby każdy cały czas tworzący się obiekt sprawdzał ustawienia i się w razie czego usuwał?

 

Pytam serio, bo nie wiem tego.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcecie robić śnieg z obiektów to wam gratuluje pomysłu. Na pewno to będzie działało na Core i7, choć i to nie jest pewne. Takie rzeczy robi się na surface'ach, animacji nie robi się przez speed tylko wylicza się pozycje x i y. Inaczej będzie wieszało kompa.

Odnośnik do komentarza
Udostępnij na innych stronach

Lol, to da te same rezultaty( czyli zero optymalizacji )...

 

Lol, tak, ale jak będzie w create to zmiana ustawień przyciskiem nie będzie działać, według tego kodu.

 

EDIT: Mówię oczywiście o tym kodzie

 

GML
ini_open(ustawienia.ini)

ini_read_real(dane,snieg,1)

global.snieg=ini_read_real(dane,snieg,1)

ini_close()

if global.snieg=0

{

instance_destroy

}

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli obj_śnieg to pojedynczy płatek śniegu, to czy nie będzie to zbyt mało efektywne rozwiązanie? tzn. żeby każdy cały czas tworzący się obiekt sprawdzał ustawienia i się w razie czego usuwał?

 

Pytam serio, bo nie wiem tego.

Kto by każdy płatek śniegu dawał do innego obiektu? Było by to głupie i nieoptymalne. Pisząc obj_snieg chodziło mi o emiter śniegu.

 

Lol, to da te same rezultaty( czyli zero optymalizacji )...

ediepl, TheLukLook prosił o prosty, krótki kod.

 

EDIT:

 

Lol, to da te same rezultaty( czyli zero optymalizacji )...

 

Lol, tak, ale jak będzie w create to zmiana ustawień przyciskiem nie będzie działać, według tego kodu.

 

EDIT: Mówię oczywiście o tym kodzie

 

GML
ini_open(ustawienia.ini)

ini_read_real(dane,snieg,1)

global.snieg=ini_read_real(dane,snieg,1)

ini_close()

if global.snieg=0

{

instance_destroy

}

 

Rzeczywiście, nie doczytałem, myślałem, że jest room_opcje, tam ustawiasz, a potem, gdy się otwiera room_gra, to wtedy sprawdza w ini i usuwa emiter lub nie. A jeśli miało by to w stepie być to, oczywiście ten kod nie ma sensu.

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