Skocz do zawartości

nowy_user

Użytkownicy
  • Postów

    235
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    5

Treść opublikowana przez nowy_user

  1. Dzięki Gnysek, ale nie do końca mi o to chodziło... W Twoim przykładzie odnosimy się do ilości liter w danej zmiennej string, a mi chodzi po prostu o prawie taką samą funkcję jak draw_text_ext, gdzie możemy sobie wpisać długość linii ( wyrażoną w pikselach ) i po przekroczeniu tej wartości tekst jest przeniesiony do następnej linijki. To wszystko fajnie działa z funkcją draw_text_ext, do momentu, gdy jeden wyraz jest dłuższy ( w pikselach) od tej wartości podanej w draw_text_ext, wtedy dochodzi do takiej sytuacji, którą przedstawiam poniżej w obrazku: Chciałbym móc narysować tekst dokładnie tak jak to robię funkcją draw_tex_ext z tą jedną różnicą, że gdy dane słowo jest dłuższe ( w pikselach, a nie w ilości liter) niż wartość, którą podaje , to aby dzieliło ten wyraz i jego drugą część, która nie zmieściła się w jednej linijce, przeniosło do kolejnej linijki. Mam nadzieję, że teraz opisałem mój problem bardziej klarownie, będę wdzięczny za pomoc pozdrawiam, nowy_user
  2. Panowie, mój problem jest nieco inny, ale też dotyczy tekstu , nie chciałem więc zakładać nowego tematu. Chodzi mi o zawijanie tekstu. Funkcja draw_text_ext pozwala na zawinięcie tekstu, jeśli przekroczy on odpowiednią ilość pixeli. Problem polega na tym, że dotyczy to tylko słów odseparowanych spacją. Jeśli string zawarty w tejże funkcji będzie składał się z jednego, długaśnego słowa, którego długość przekracza długość jednej całej linijki, to wrapowanie zostanie zignorowane . Czy wie ktoś jak sprawić, aby funkcja draw_text_ext wrapowała też pojedyńcze słowa, które są dłuższe niż długość jednej linijki? Będę wdzięczny za pomoc, nowy_user!
  3. Hej mam pytanie stricte graficzne. Znalazłem sobie fajne tło kosmosu ,1600 pxl x 1600 pxl , naprawdę mi się podoba i chciałbym użyć go w moim projekcie. Jest jeden problem , mój room ma 4500 pxl na 4500 pxl, więc tło nie pokrywa całego roomu. Niestety , tło jest tak stworzone, że jego prawa częśc nie jest symetryczna do lewej, tak samo górna nie jest symetryczna do dolnej, przez co zamiast jednolitego tła mam kilka dużych bloków, które nie pasują do siebie na krawędziach. Słabo znam się na grafice, ale podejrzewam, że są jakieś sprytne metody, które pozwalają przerobić dany obrazek, aby przy ustawieniu go jako tło, tworzył jedną całość bez widocznych elementów przejścia. Czy są jakieś programy do tego? A może najlepiej zastosować jakiś sprytny mechanizm w stylu kilku warstw nakładających się na siebie? Będę wdzięczny za jakiekolwiek wskazówki.
  4. Niestety mam tylko GMS 1.4, choć może niebawem przerzucę się na GMS2. Z tego co piszesz , to rzeczywiście trochę trzeba się nagimnastykować żeby używać ds_list bez uszczerbku na wydajności apki, ale z drugiej strony, możliwość sortowania, i co ważniejsze, brak konieczności wcześniejszego zadeklarowania, jak duża będzie twoja lista ( czego nie masz niestety przy tablicach) jest bardzo kusząca. Potestuję, i zobaczę co będzie lepsze dla mojego projektu, listy czy tablice.
  5. Ok, czyli na dobrą sprawę, wystarczy, że ustawimy sobie w danym obiekcie tworzącym listę, w Evencie Destroy: ds_list_destroy(id) i wtedy nie musimy się niczym przejmować. Dzięki za odpowiedź. Pozdro! Nowy!
  6. Witajcie drodzy użytkownicy, Zaczynam się zapoznawać z koncepcją ds_list oraz ds_grid i nurtuje mnie jedno pytanie. Skoro ds_list jest bardzo podobna do jedno-wymiarowej tablicy zmiennej, a ds_grid do dwu-wymiarowej tablicy zmiennej, to dlaczego, w przypadku tablic nikt się nie przejmuje tym, ile to "pożera" pamięci, natomiast w przypadku ds_list i ds_grid kładzie się taki duży nacisk na to, aby usuwać listy, gdy się z nich nie korzysta, żeby zwolnić zasoby? Czy naprawdę jest taka duża różnica w wykorzystaniu RAMu, między użyciem takiego kodu: properties[3] = "Orange"; properties[2] = "Green"; properties[1] = "Red"; properties[0] = "Blue"; a takiego: ? properties = ds_list_create(); ds_list_add(properties, "Blue"); ds_list_add(properties, "Red"); ds_list_add(properties, "Green"); ds_list_add(properties, "Orange"); To tylko różnica jednej linijki kodu, skąd więc zatem obawy związane z "memory leaks" itd? Czy naprawdę jest tak, że nie usuwając listy narażamy się na niższy FPS? Czy ktoś bardziej ogarnięty mógłby mi wyjaśnić, dlaczego tak się dzieje? Dziękuję i pozdrawiam! nowy!
  7. Hej, ściągnąłem demo, program wygląda obłędnie. Moje gratulacje, słusznie Twój generator zebrał tak świetne opinie na Marketplace! Zastanawiam się tylko nad tym, czy ten addon można przerobić w taki sposób, aby generował stworki zamiast statków? Czy wszystko opiera się tylko i wyłącznie na skryptach, czy sprite'y też są brane tu pod uwagę? Pozdro!
  8. Dzięki wszystkim za odpowiedzi, dla pewności będę optymalizował kod w taki sposób aby na 100 % nie rysowało nic poza viewem.
  9. Dokładnie tak jak piszesz, lepiej bym tego nie ujął. Ja sam myślę, że prędzej czy później Game Maker Studio zmieni nazwę na GM Studio, to najbardziej logiczne rozwiązanie. Jeśli tendencja cenowa będzie taka jak teraz ( każda kolejna edycja jest coraz droższa), w końcu dojdzie do tego, że ludzie po prostu się zbuntują i nie zapłacą tyle kasy za coś, co kojarzy się z programem nieprofesjonalnym. Myślałem, że petycja może to przyspieszyć, ale nie zdawałem sobie sprawy, że teraz za GMS2 stoi tak duża firma jak PlayTech . Liczyłam na to, że właścicielem GMa jest dalej Yoyo, i że Gnysek, z racji swojej przeszłości, ma jakieś dojścia, które ułatwiłyby dotarcie petycji do właściwej osoby. W obliczu nowych informacji, ten plan można jednak wrzucić do kosza.
  10. Ok , w takim razie już jest to jasne, dzięki !
  11. Hej, tworzę sobię program , w którym w jednym roomie będą różne tła , więc stworzyłem sobie krótką pętlę w evencie , która jest odpowiedzialna za rysowanie sprite'a obok sprite'a. Zastanawiam się jednak, czy dla zwiększenia wydajności musze użyć funkcji if point_in_rectangle(px,py, view_xview[0] - 256 , view_yview[0] - 256, view_xview[0]+view_wview[0]+, view_yview[0]+view_hview[0] + 256 ) , po to, żeby GM nie rysował tych sprietów poza viewsem? Czy może jednak GMS 1.4 sam to wie i domyślnie nie rysuje poza viewem, i nie ma konieczności umieszczania takiego dodatkowego kodu dla zwiększenia wydajności? Wie ktoś może?
  12. Dokładnie, w końcu ktoś kto rozumie problem. Nazwa Game Maker od razu kojarzy się z czymś typu Music Maker, RPG Maker, Movie Maker itp. Nazwa sugeruje, że jest to dość prosty program, z mocno ograniczonymi funkcjami dla totalnych laików, a nie dla profesjonalistów. Myślę, że może być to nieco krzywdzące względem Indie Developera, który zdecydował się tworzyć gry w GMS, zapłacił niemałe pieniądze za wszystkie licencje, otworzył własną firmę i poświęcił kilka lat na rozwijanie swoich umiejętności i wiedzy GML. A krzywdzące może być w ten sposób, że gdy ktoś go spyta, w czym robi gry, a on odpowie, że w Game Makerze, to naraża się na kiepskie reakcje. Wszystko było ok 15 lat temu, gdy GM miał trochę inne zastosowanie i inne aspiracje. Wydaje się jednak, że najnowsza strategia marketingowa Yoyo jest taka, że chcą aby GM był postrzegany jako alternatywa dla Unity. I tu ta nazwa Game Maker - no nijak nie pasuje. Bardziej kojarzy się to z czymś dobrym na pierwsze 2-3 miesiące nauki robienia gier , żeby następnie przeskoczyć do czegoś poważniejszego. A chyba jednak Yoyo nie taki przekaz chce budować.
  13. Dzięki za rozjaśnienie sytuacji, teraz już działa
  14. Cześć, zastanawiam się nad zrobieniem sprytnej pętli która obejmowałaby kilka obiektów tego samego typu ( potencjalnie nieskończoną ilość). Głowie się nad tym już od kilku godzin i niestety nie potrafię wymyślić eleganckiego rozwiązania... oczywiście mogę to wykonać naokoło, umieszczając trochę kodu w Evencie Step, ale wiecie, staram się to oganiczać aby program nie zamulał. Już wyjaśniam o co chodzi: Mam obiekt o nazwie Obj_kwadrat . Tych obiektów na planszy jest ok 15 - 20 , ale mam możliwość tworzenia nowych lub kasowania starych, więc liczba się zmienia. Obiekty te mogą być ze sobą powiązane, tak że jeden jest podrzędny do drugiego, drugi do trzeciego itp. Tworzy się zatem taka hierarchia. Do tego celu, Obj_kwadrat ma zadeklarowaną zmienną : inferiorTo=0 . W takiej sytuacji, gdy inferiorTo=0 to nie ma on żadnego innego Obj_kwadrat nad sobą w hierarchii . Jeśli jednak jego zmienna inferiorTo=( id innego Obj_kwadrat) to wtedy jest podrzędny do tego kwadratu z tym id. Oprócz tego każdy Obj_kwadrat ma zmienną click, która może być 0 lub 1, w tym momencie nie jest ważne za co jest odpowiedzialna ta zmienna. Chciałbym aby po kliknięciu lewym przyciskiem myszy w Obj_kwadrat wykonał on następującą akcję w Evencie: Mouse button pressed (Left): i teraz chciałbym, aby ten sam kod był wykonany dla następnego Obj_kwadrat którego ID jest takie samo jak zmienna inferiorTo, i tak to zapętlić do czasu, gdy któryś z tych obiektów ma w zmiennej inferiorTo=0 Czy mogę to zrobić jakąś sprytną pętlą? Oczywiście mogę to zrobić naokoło i napisać coś takiego: i tak jeszcze możnaby pisać godzinę, zważywszy na to, że hierarchia może mieć potencjalnie nieskończoną ilość stopni, sami widzicie, że lepiej to rozwiązać jakąś pętlą... Jakieś pomysły?
  15. Ja rozumiem, że w 2000 roku ten wstyd był nieco uzasadniony, GameMaker nie oferował wtedy zbyt wiele, a gry tworzyło się z klocków. Wtedy ta nazwa była jak najbardziej na miejscu i nie winię za to Marca Overmarsa, że tak postanowił wtedy nazwać swój produkt. Od tego czasu wiele się zmieniło, możliwości GM'a poszły mocno w górę, GMS ma swój własny język programowania, roszerzeżenia pozwalające pisać skrypty w JS itp. Cena też zresztą mocno podskoczyła. Community urosło, ilość opublikowanych płatnych gier także przyprawia o zawrót głowy. Zmieniło się prawie wszystko... oprócz tej zawstydzającej nazwy. Wyobraźcie sobie, że postanowiliście na jakiś czas zostać indie game developerem i jako narzędzie wybraliście sobie GMS:2 . Prawda jest taka, że jeśli masz odpowiednie umiejętności, wytrwałość, oszczędności i odrobine szczęścia, to możesz nawet zarobić parę $ i utrzymać się przez jakiś czas - przynajmniej jeśli nie masz kredytu ani żony & dzieci. W ten sposób możesz spełnić swoje marzenie o byciu twórcą niezależnych gier i z tego żyć... wszystko pięknie, do czasu... gdy podczas zlotu rodzinnego, twój jajogłowy kuzyn którzy 'przepisuje' jakieś proste kody w bankowej korporacji zapyta Cię, w czym tworzysz te gry. Co mu wtedy odpowiecie aby nie wybuchł ze śmiechu?
  16. Cześć, Zastanawiam się nad stworzeniem petycji, skierowanej do Marka Overmarsa ( lub kogokolwiek, kto jest teraz szefem GameMakera), dotyczącą zmiany nazwy programu. GameMaker... serio? Rozumiem, że taka nazwa miała sens w 2000 roku w czasach GameMaker 5.0 i gry robiło się tam głównie z klocków... ale teraz jest to narzędzie rozbudowane, z własny językiem programowania, w którym można robić gry zarabiające duży hajs. Ba! Powstają nawet mały firmy developerskie (np. MoaCube), które specjalizują sie w tworzeniu gier w GMS:2, jest to więc narzędzie, z którego korzystają już nie tylko hobbyści ale też i profesjonaliści... a ta nazwa? GameMaker? Nie uważacie że jest to oznaka braku szacunku dla developera, który poświęcił kilka lat na to aby opanować GML? GameMaker brzmi jak jakiś RPG maker, i od razu kojarzy się z jakimś scamem. Zanim ktoś z was stwierdzi, że troluję lub prowokuję, to zastanówmy się nad jedną rzeczą: Czy nie jest tak, że każdy, kto powie w towarzytwie, że stworzył grę w GameMakerze jest traktowany niepoważnie, i to wcale nie dlatego że GMS:2 to program ułomny czy też wybrakowany ( w rzeczywistości ma nawet kilka plusów, których nie ma Unity), ale przez tą nazwę, która jest totalnym nieporozumieniem i jest nieadekwatna do możliwości programu. Czemu GM nie może nazywać się jakoś bardziej normalnie jak Unity czy też Godot? Pozdrawiam, nowy_user
  17. Eh.. akurat przegapiłem te zniżki, pozostaje trzymać kciuki, że niedługo znowu będą jakieś promocje ( jeśli dobrze kojarzę to na GMS 1 , zniżki pojawiały się w różnych momentach, nie tylko przed wyjściem GMS 2, tak? )... ewentualnie może lepiej poczekać już na GMS 3.0 BTW. Czy rzeczywiście te zniżki oscylowały w okolicach 50% dla klientów GM 1.4 ? Aż nie chce mi się w to wierzyć... może raczej 10% max 20% ? Pamięta ktoś?
  18. Niestety, wygląda na to, że posiadacze GM Studio 1.4 ( Master edition) mogą być tylko spokojni o wersję na Windowsa ( i ewentualnie html5), tutaj GMS 1.4 nie powinno sprawiać problemów jeszcze przez jakiś czas... Szkoda, że YoYo nie ma specjalnej oferty dla osób, które kupiły 1.4 , tak aby mogli zaktualizować do 2-jki np. za połowę ceny. Na pewno zyskaliby sympatie klientów.
  19. Cześć wszystkim, Mam pytanko. W swoim projekcie, którzy teraz tworzę, używam funkcji, zapisującej zmienne do pliku tekstowego file_text_open_write(fname); , a potem, w innych miejscach programu wczytuję te pliki, analogiczną funkcją, z końcówką _read. W przypadku Windowsa nie ma problemu, ponieważ pliki txt zapisują się zawsze na dysku C, w folderze AppData/Local/ . Czy jeśli przekonwertuję moją aplikację na Mac'a ( dokładnie na MacOS) , to czy mogę liczyć na to, że wszystko będzie działało bez zarzutu? Jeśli tak, to w jakim folderze te pliki .txt się zapisują? Domyślam się, że MaxOS ma zupełnie inną strukturę niż windows, i nie ma tam folderu AppData/Local/ Wybaczcie, że pytam o taką rzecz, ale sam nie mam Mac'a, i chciałbym się upewnić, jak dużo czasu będę musiał poświęcić na dostosowanie mojego projektu do urządzenia Apple'a. Pozdrawiam, nowy_user
  20. Witajcie. Ostatnio ( miesiąc temu) miałem przyjemność wykorzystać GM w pracy- przygotowywałem makietę aplikacji w GM HTML5 , która potem była testowana (zdalnie) przez testerów z USA, i teraz w oparciu o wyniki testów, deweloperzy tworzą teraz pełną wersję aplikacji ( ja normalnie nie zajmuje się programowaniem w firmie- to był wyjątek) Moja firma była na tyle zadowolona z całego przedsięwzięcia oraz z tego, jak sprawnie udało mi się to załatwić, że w najbliższej przyszłości szykuje się kolejny taki projekt i kolejne zadanie dla mnie- przygotowanie kolejnej makiety. Niestety , w poprzedniej turze pojawiły się problemy , których wolałbym uniknąć. Dodam tylko że makieta musi być online- testerzy nie będą nic pobierać, więc robiłem to w module html5. Oto problemy które się pojawiły 1. Na komputerze działało to ok, ale problem pojawił się gdy testerzy testowali program na iphonach lub smartphonach lub nawet tabletach albo nawet na iMacach- główny problem był taki, że dźwięk w ogóle się nie odtwarzał na tych urządzeniach. Nie wiedzieć czemu. na PC wszystko ok. 2. Apka bardzo wolno się wczytywała na mobilnych urządzeniach ( na kompie normalnie) , 2 razy doszło nawet do sytuacji , że iPhone się zawiesił - przeładowanie pamięci. unbeliveble - myślałem , że iphony się nie zawieszają nigdy. 3. Czy zna ktoś prosty moduł do przewijania strony "dotykiem"? Wiecie, zamiast suwakiem który jest po prawej strony, chciałbym abym mógł zrobić "wipe down" lub "wipe up" za pomocą palca. Z góry dzięki! nowiutki_user
  21. Jest to GM 1.4 ( z najnowszymi aktualizacjami) Tak wygląda plik ini, zwróćie uwagę na sam koniec: [pozycja] y="1634.000000" x="1453.000000" [rozmiar] y="1.000000" x="1.000000" [first] first="0.000000" [text] text="linijka a linijka b linijka c" Niestety , po odczytaniu zmiennej na początku gry za pomocą text=ini_read_string("text","text",""); i potem po rysowaniu w drawie, wyświetla tylko linijkę a ; linijka b i linijka c nie jest wyświetlana. Zatem problem raczej leży po stronie odczytu a nie zapisu do pliku. Nie pamiętam już dlaczego użyłem w tym projekcie ini ( wracam do projektu sprzed 2 miesięcy) ale z tego co kojarzę to brakowało mi jakiejś funkcji, która była dostępna przy plikach ini.
  22. Witajcie , mam problem z zapisem zmiennej string do pliku tekstowego , który zawiera entery. Powiedzmy że dany obiekt o_square ma zmienną text. Dodaję mu następujący kod, który ma za zadanie dodać do zmiennej text , zawartość clipboardu: if(o_window_controler.active=id)//kopiowanie tekstu if keyboard_check(vk_lcontrol) if keyboard_check(ord("V")) { text+=clipboard_get_text(); o_window_controler.active=noone; } Wszystko jest w porządku, niezależnie od tego czy string ma entery czy nie, obiekt przyjmuje to co mam w schowku , i za pomącą innej funkcji w draw mogę sobie wyświetlić text w obiekcie o_square : Czyli mamy klasyczne pole tekstowe. Schody zaczynają się, jeśli chcę zapisać zmienną text do pliku txt. A następnie, przy ponownym uruchomieniu programu ją odtworzyć za pomocą text=ini_read_string("","","");. Otóż: 1. Jeżeli w schowku przy wklejaniu był enter, czyli nowa linijka, to przy ponownym uruchomieniu programu , zmienna nie zostanie odczytana 2. Jeżeli w schowku nie było enteru to wszystko będzie działało jak należy i text zaczyna się z pliku txt. Dziwna anomaila... czy ktoś wię skąd ten problem? Pozdrawiam, Nowy_user
  23. Dzięki, rzeczywiście poszukałem na google grafika klawiaturę z UK i na klawiszu 2 ma to nieszczęsne " . Na szczęście pokombinowałem jeszcze trochę z string_replace i zadziałało jak trzeba Panowie , dzięki za pomoc. Muszę też przyznać, że GM HTML5 nie wygląda tak źle , coraz bardziej podoba mi się to narzędzie ( pewnie do czasu, gdy pojawi się jakiś frustrujący bug)
  24. Dzięki Threef , rzeczywiście działa. Niestety mam kolejny problem z wpisywaniem do formularza , tym razem do formularza zwykłego ,niezakrytego gwiazdkami. W momencie gdy wpisuje znak @ w wersji windows , wszystko jest ok. Problem pojawia się gdy odpalam w wersji html, wtedy zamiast znaku @ pojawia się znak " . Dlaczego? probowałem opcji replace_string ale dalej nie działa
  25. Hej, czy ma ktoś pomysł , jak zrobić aby po wpisaniu czegokolwiek w formularzu pojawiały się tylko gwiazdki , w taki sam sposób jak przy wpisywaniu hasła? Pozdrawiam, Nowy user
×
×
  • Dodaj nową pozycję...