Skocz do zawartości

nowy_user

Użytkownicy
  • Postów

    235
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    5

Odpowiedzi opublikowane 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:

     

    image.png.354305a28492d43970861bbce51849f8.png

     

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

  6. 1 godzinę temu, exp napisał:

    to nie jest specyfika języka angielskiego tylko każdego języka. to, czy nazwa własna brzmi poprawnie zależy głównie od czynników fonologicznych, a mniej od semantycznych i w prawie każdym przypadku dosłownego tłumaczenia wynik będzie pokraczny, zwłaszcza na języki z innej rodziny. a "facebook" znaczy po angielsku album z fotografiami ;) to taka moja dygresja. ale "game maker" brzmi gorzej właśnie z perspektywy języka angielskiego. kojarzy się z prostym, amatorskim programem, który znaczną część procesu odwala za użytkownika. zresztą, chyba każdy tu pamięta tamte czasy, w których programów o nazwach opartych o schemat "[cokolwiek] maker" było zatrzęsienie, a GM na pewno nie zasługuje na bycie kojarzonym z nimi. jak już pisałem wcześniej, nazwa na pewno nie zostanie zmieniona, bo GM to po prostu wyrobiona marka, wyrobiona jednak w innych czasach i dziś nazwa brzmi po prostu źle i nieprofesjonalnie. czy odrzuca to użytkowników i graczy - większości raczej nie, ale niektórych pewnie tak. zresztą, chyba nawet w cd-action przy okazji recenzji jakiejś gry (hotline miami?) autor rzucił informację, że gra została zrobiona w game makerze, jakby było to coś dziwnego, że można w tym środowisku zrobić coś dobrego i profesjonalnego (to też pewnie kwestia polskiego zacofania w tej kwestii, no ale jednak). GM to trochę taki dorosły człowiek z całkiem dobrą karierą i ułożonym życiem, który niestety w czasach nastoletnich zrobił sobie głupi tatuaż - nic już się z tym nie zrobi, więc nie ma za bardzo sensu roztrząsać tematu

    (chociaż skoro już zmieniono nazwę na Game Maker Studio, to raczej zmieniłbym ją na GM Studio, analogicznie do tego, co zrobili twórcy fruity loopsa. no ale nie jestem marketingowcem)

     

    a ikona jest spoko

     

    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.

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

  8. 2 minuty temu, Temporal napisał:

    Argument z Fruity loopsem jest z dupy. Żeby to miało sens to musiałbyś porównać Game makera do Music makera. Większość programów ze słowem maker, to zabawki dla dzieciaków, w których nie da się nic porządnego zrobić i o to się rozchodzi. Fruity loops to taka sama nazwa jak Reaper, Pro tools, Reason itd. Widzę, że większość osób nie rozumie w czym cały problem. Nie chodzi o głupią nazwę per se, tylko o skojarzenia. Oczywiście nazwa ma akurat najmniejsze znaczenie jeśli chodzi o jakość produktu, ale rozumiem, o co chodziło autorowi.

     

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

     

     

     

     

  9. 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):

     

    Cytuj


    if instance_exists(inferiorTo)

    with (inferiorTo) click=1

     

     

    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:

    Cytuj

     

    if instance_exists(inferiorTo)

    with (inferiorTo) click=1;

     

    if instance_exists(inferiorTo).inferiorTo

    with (inferiorTo).inferiorTo click=1;

     

    if instance_exists(!inferiorTo).inferiorTo).inferiorTo

    with ((inferiorTo).inferiorTo)inferior.to click=1;

     

     

    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?

     

     

     

     

     

     

  10. 12 minut temu, Chell napisał:

    ale go obsmialiscie, a teraz mi przytoczcie jeden raz jak mowiliscie osobie trzeciej "GameMaker" bez cienia wstydu

     

    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? 

  11. 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ś?

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

     

     

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

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

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


     

    Cytuj

     

    Po pierwsze pytanie które muszę zadać: Czemu plik INI?

     

     

     

    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.

     

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

     

     

  17. 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)

     

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

×
×
  • Dodaj nową pozycję...