Skocz do zawartości

Threef

Moderatorzy
  • Postów

    2 911
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    14

Treść opublikowana przez Threef

  1. GML (Draw albo Draw GUI) var spr=s_button//Sprite z grafiką buttona //Pozycja buttona var xx=20 var yy=20 var w=sprite_get_width(spr) var h=sprite_get_height(spr) if(mouse_check_button_pressed(mb_left) && point_in_rectangle(mouse_x,mouse_y,xx,yy,xx+w,yy+h)) { //Przycisk wciśnięty } draw_sprite(spr,0,xx,yy) Origin sprite ustawić na [0,0]. Dla Draw GUI trzeba robić inaczej. Nie można tam sprawdzać mouse_x / mouse_y. Trzeba display_mouse_get_x() / display_mouse_get_y()
  2. On wywala je z RAM. Te które są utworzone jako zasoby wciąż zostają gdzie były.
  3. Tak, dobrze wiemy o tym. Ale ciekawe jakie efekty miałoby właśnie pobieranie grafik z dysku i trzymanie ich tylko w surface.
  4. Nie, nie muszą to być obiekty. Przycisk to po prostu sprawdzenie czy mysz jest na odpowiedniej pozycji i czy jest wciśnięty klawisz.
  5. Każda grafika wczytana z dysku to nowy texture page. Więc wczytując samemu grafiki z dysku robi się dużą głupotę. Nie wiem tylko jakiego rozmiaru są one. Boję się że te texture pages są standardowej wielkości. Więc jak mamy w projekcie ustawione 2048x2048 to wczytując grafikę która ma 32x32 reszta jest pusta ale wciąż zajęta. Ciekawi mnie teraz co by było gdyby wczytywać grafiki, zapisywać je na surface (czyli w pamięci graficznej) i rysować surface zamiast tego. Może ktoś chciałby porobić testy wydajnościowe?
  6. Ach jest haczyk, zapomniałem. Jest logo GM przy włączaniu gry chyba. Ale w porównaniu do tego co było w GM8.1 gdzie był znak wodny i ograniczone funkcje to jest nie do przebicia. Żebyś nie pytał to (prawie) wszystkie funkcje są odblokowane, a nie będą Ci oczywiście działać te od reklam albo analityki. GM:S nie wczytuje wszystkiego na początku. Wczytuje tylko to co potrzebuje, ale właśnie nie usuwa tego co już nie potrzebne. Dlatego trzeba robić flush. O ilość obiektów się nie martw, najgorzej jest z rysowaniem sprite. Jeżeli robić instance_deactivate() to nie powinieneś mieć problemów.
  7. Rozwiązanie drugiego bardzo Cię ucieszy: Ściągnij GameMaker:Studio Odpal i zaktualizuj Wpisz email w okienku powitalnym Sprawdź email ??? Profit! Ciesz się aktywną wersją standard GM:S która za darmo ma wszystko co GM8.1 Pro + sporo nowych rzeczy jak to co przyda się w rozwiązaniu pierwszego problemu. Więc z grafikami jest fajna sprawa w GM:S. Jest coś takiego jak texture pages. Są to spakowane razem grafiki. W wersji GM:S Pro możesz samemu kontrolować co na jakim texture page ma być, ale nawet jak nie masz do tego dostępu to wciąż zainteresuje Cię funkcja draw_texture_flush();. Ona najnormalniej wywala z pamięci wszystkie grafiki, a te które gra teraz używa są od nowa wczytywane. Używa się tego na początku room (jako loading?) i dzięki temu jeżeli jakaś grafika nie pojawia się na tym room to nie zajmuje ona już RAM. Tylko niech nie przyjdzie Ci do głowy wyżywanie tego w Step! Wtedy osiągniesz odwrotny efekt bo grafiki będą musiały co step się od nowa wczytywać!
  8. GM8 nie musiał działać na HTML5, Androidzie, iOS i konsolach. Tam nie masz możliwości odczytać coś z poza danych gry. Ale jeżeli chcesz się ograniczyć tylko do Windowsa to jest extension które odblokowuje pełen dostęp do dysku. Wygoogluj "GMFileSystem". Znalazłem na forum YYG.
  9. Bo nie nadąża. Ten twój kawałek kodu wykonuje się przed "przeniesieniem" view, więc cały czas będzie jeden step wstecz. Dawno już nie robiłem tego w taki sposób bo istnieje masa o wiele lepszych rozwiązań (np.: Event GUI) ale wydaje mi się że jak wsadzisz te w Draw to będzie działać jak chcesz.
  10. Z folderu gry możesz tylko odczytywać. Z \AppData\Local\ możesz zapisywać i odczytywać. Są też funkcje które pytają użytkownika o plik, wtedy w zależności czy prosimy o load czy save to mamy dostęp do dowolnego pliku jaki wskaże użytkownik. Jest to związane z zabezpieczeniem użytkownika.
  11. Zacząłem się bawić shaderami. Szybki nowy poboczny projekt. Nie daję w [ img ] bo każdy ma rozmiar 1000x1000 http://i.imgur.com/IM1w1V9.png http://i.imgur.com/YQbUxRQ.png http://i.imgur.com/11hKATH.png
  12. Rozwiązanie tego jednego problemu jest banalnie proste. ANtY ić stont. Po wczytaniu gry wszystko próbuje wrócić do normy. Ale są dane które nie zostają przywrócone, w tym wypadku jest to lista. Wystarczy że linijkę przed tym gdzie pojawia się błąd (masz opisane w komunikacie błędu) wstawisz: GML if(!ds_exist(onMeList,ds_type_list)) {onMeList=ds_list_create()} Jest to proste sprawdzenie czy lista istnieje i w razie czego stworzenie jej od nowa. Niestety wróżę że zaraz po poprawieniu tego jednego błędu pojawi się inny. Tak już jest jak robi się zlepki kodu.
  13. Sandbox. GM:S nie pozwala zapisywać gdzie się chce. Pliki można odczytywać tylko z folderu gry oraz folderu danych gry (appdata), a zapisywać tylko w tym drugim. Twój plik będzie w: C:\Users\Nazwa Użytkownika\AppData\Local\Nazwa_twojej_gry Być może twój save nie działa bo, tak jak pisałem wcześniej, GM:S stara się aby był uniwersalny. Po prostu nie działa w twoim wypadku. Może coś kombinujesz z obiektami, a może save się wczytuje ale ty zaraz potem coś psujesz? Najpierw sprawdź czy plik się tworzy. Jeżeli nie to próbuj aż będzie się tworzyć. Jeżeli się tworzy a dalej nie działa to musisz pomyśleć o innym sposobie zapisywania. Zrób wtedy wielką listę co musi twój save pamiętać czyli room na którym byłeś, pozycja x i y gracza, liczba złota, HP, zabici przeciwnicy, etc. Potem po prostu będziesz musiał to wszystko zapisywać i wczytywać z pliku ręcznie.
  14. A nie trzeba przypadkiem powiedzieć do jakiego pliku ma się zapisać? GML game_save("Save.dat") game_load("Save.dat") Dzięki temu możesz mieć kilka save.
  15. Lol to jest skalowanie view i osobno GUI. viev_wview[0]=view_wport[0]*skala A FPS niski bo 1. to edytor. On musi mielić. 2. To GM 3. Mam procka 1.06GHz [Pisane z telefonu]
  16. Grafiki raczej takie już zostaną. Rysowanie polega na tym że wysyła się dane o rysowanym klocku do kontrolera który się zajmuje tworzeniem albo nadpisaniem tile. Dzięki temu działa asynchronicznie i można rysować dalej w czasie gdy operacje się wykonują. Dane o tile są w... ds_list. Ogółem te "Wait or press ESCAPE" wyskakuje po naciśnięciu Enter i jest trybem który wyłącza event draw do czasu aż wszystkie operacje się wykonają. Ikonki u góry to między innymi ukrywanie warstw. Brakuje jeszcze zrobić "Flood fill" i "Magic Wand". Zastanawiam się też czy jest sens robić copy/paste. Potem rysowanie tylnych tile w tle i obiektów mapy. Takie małe "Create map editor in 7 days" jam. :P Tutaj lepszy gif, bo tam coś się z view stało.
  17. Level editor prawie skończony w 16 godzin. Prawie, bo jeszcze sporo roboty, ale już podstawy czyli rysownie tile różnymi pędzlami i najważniejsze czyli zapisywanie do odpowiedniego formatu już jest. Oczywiście ma bajery jak zoom i wyłączanie warstw. Jutro dorobić wybieranie tilesetu i autotiler. A potem pola tekstowe settings mapy żeby można było wpisać autora albo wybrać tryb gry. Po jutrze zrobić resztę "warstw" czyli dodawanie przeciwników i ozdób, a w piątek będę mógł chyba zacząć obsługę tego formatu map w grze. Miesiąc planowania nie poszedł na marne!
  18. Zobacz w dokumentacji funkcje game_save() i game_load() są uniwersalne i to oznacza że rzadko będą działać tak jak chcesz. Jeżeli potrzebujesz czegoś więcej to musisz się zainteresować obsługą plików i jakoś zaplanować swój "stan gry".
  19. Już wiesz jak to zrobić. Właśnie to napisałeś. Po prostu rysuj grafiki drugi raz na odpowiedniej pozycji. Można to fajnie stworzyć jako surface, tylko musisz ogarnąć jak wszytko rysować.
  20. Albo możesz też spróbować z Constructem 2. W HTML5 radzi sobie lepiej niż GM:S.
  21. Sobota rano, nie rozumiem z tego prawie nic. Nie mam pojęcia czy to jest kod poruszania gracza, czy (mam nadzieję że nie) platformy. Po 5 minutach zauważyłem durnotę jaka jest: if y<y+py {down=1;} Bo w tym momencie sprawdzasz: if 0<py {down=1;} Poza tym postaraj się następnym razem używać znacznika [ gml ]
  22. Threef

    wakacje

    Technikum to rozszerzone liceum. Będziesz mieć te same przedmioty i tematy, z tą różnicą że będziesz miał dodatkowe 3-8 przedmiotów technicznych i wszystko będzie uciśnięte w 4 a nie 3 lata. Licea zazwyczaj mają wyższy poziom bo naciskają na przygotowanie do matur, ale można przez nie przelecieć tak samo. W technikum pozwala się często przymrużyć oko na zwykłe przedmioty jeżeli uczeń jest dobry z technicznych. W liceum będziesz kończyć lekcje o 15:00, w technikum o 17:00.
  23. Może po prostu masz origin tej skały ustawiony tak a nie inaczej? Może ta skała gdzieś w create się przemieszcza? Poza tym zastanów się czy na pewno chcesz tworzyć instance. Może wystarczy Ci rysować te sprite na odpowiedniej pozycji?
  24. Co rozumiesz przez rozmiar? Bo jest dużo różnych możliwości. To co podał Boad to skala sprite. Punkt origin pozostanie bez zmian a wymiary sprite będą przeskalowane przez te wartości.
×
×
  • Dodaj nową pozycję...