-
Postów
9 812 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
141
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez gnysek
-
UU, panie, drogo
-
a++ - postikrementacja - dodaj do zmiennej 1 po obecnym wyrażeniu. ++a - preinkrementacja - dodaj do zmiennej przed obecnym wyrażeniem. tak samo z -- oczywiście (--a, a--). Wyrażenie to jest każdy kawałek kodu, który powinien kończyć się średnikiem czy nawiasem (nawet jeśli go nie Inaczej mówiąc: show_message(a++); // po kompilacji: show_message(a); a+=1; show_message(++a); // po kompilacji: a+=1; show_message(a); Oczywiście w większości przypadków wydaje się, że a++ oznacza to samo co a+=1, bowiem dodanie wykona się zawsze w następnym kroku kodu, więc takie jest wrażenie, czy też w pętlach dodanie wykona się zaraz za średnikiem - ale właśnie przykład z show message pokazuje, ze można napisać ++ a i tak dostać poprzednią wartość. Czasem wstawienie przed czy za się przydaje, żeby osiągnąć dodatkowy efekt.
-
Zamień draw na instance create... To naprawdę tak ciężko wykumać?
-
Zamiast stringów lepiej używać constantow/macro, kompiler wykryje błędy i podpowiadanie składni zadziała
-
Wstawienie obrazków do textboxa po wyswietleniu się odpowiedniej części tekstu
gnysek odpowiedział(a) na pankracy temat w Pytania zaawansowanych
Trochę tak jak ja to napisałem, dodatkowe zmienne, oznaczające własnie avatar, może imię osoby, może rodzaj tła i na tej podstawie resetować zmienne po kazdym tekście i czytać nowe. Generalnie ja napisałem coś takiego jak w solstice/cinders na swoje potrzeby w jakieś 6-8h, ale nie nadaje się do udostępnienia tak ot, bo 50% kodu jest zależna od wielu innych rzeczy w grze, a nie będę dawał połowy gry to nie jest łatwe zagadnienie i wymaga napisania niemalże parsera prostego języka programowania (taki bardziej znacznikowy w sumie, no ale jednak). Jak ma się już pierwszą komendę to potem z górki, ja mam tak zrobione nawet animacje postaci (przemieszczają sie, obracają itd.) i nawet można podawać prędkość i czas trwania. -
@nowy_user Chyba nie wszystko jak w manualu, bo ja tam widzę jak do zapisywania w pliku używają zmiennej którą zwraca file_text_open_write, a Ty używasz tej od get_save_filename... var _path, _file; _path = get_save_filename("project|*.txt", ""); if (_path != "") { _file = file_text_open_write(_path); file_text_write_string(_file, _savedane); file_text_close(_file); } } Jedna funkcja zwraca ścieżkę, druga id pliku.
-
Wstawienie obrazków do textboxa po wyswietleniu się odpowiedniej części tekstu
gnysek odpowiedział(a) na pankracy temat w Pytania zaawansowanych
@pankracy To jednak Solstice było, ale obie gry są niemal identyczne. TeeGee na pewno się nie pogniewa jak się podzielę w celach edukacyjnych, skoro i tak dawał do kodu dostęp w ramach Humble. https://drive.google.com/open?id=1y9cA4R9m-KBrLuM8tHhJsTQjY5temFz1 Ostrzegam jednak, że to spory kod będzie (poznasz zmianę tła czy efekty po kodzie podobnym jak bbcode, np. [do_something=1]). -
Wstawienie obrazków do textboxa po wyswietleniu się odpowiedniej części tekstu
gnysek odpowiedział(a) na pankracy temat w Pytania zaawansowanych
draw_sprite(introcolor A co to jest ten introcolor ? A jak chcesz zmianę obrazka na jakimś etapie tekstu (w połowie), no to jest już naprawdę dużo roboty, cały dzień. Chyba w kodzie źródłowym cinders coś takiego bylo, masz może go z humble bundle ? -
Wstawienie obrazków do textboxa po wyswietleniu się odpowiedniej części tekstu
gnysek odpowiedział(a) na pankracy temat w Pytania zaawansowanych
@pankracy ponieważ piszesz, że robisz na GMS 1.4 to średnio mogę pomóc, nie chce mi się go instalować specjalnie. Ale z głowy zrobiłbym tak: (wielokropek oznacza, że zostaje poprzedni kod). scr_ini: global.textq=ds_queue_create(); global.imageq=ds_queue_create(); global.text_get=true; add_text (od teraz ma dwa argumenty, ("tekst", -1) gdy nie ma obrazka i ("tekst", spr_jakis) gdy jest obrazek: ds_queue_enqueue(global.textq,argument0); ds_queue_enqueue(global.textq,argument1); if !instance_exists(obj_text) then instance_create(0,0,obj_text); --- obj_text create: alpha=0; //przeswitywalnosc step=0; //kolejne zadanie przez nas wykonywane - KROK text=''; //tekst jaki mamy wyswietlic image = -1 // obrazek jaki mamy wyswietlic leght = 0; step: if not ds_queue_empty(global.textq) and global.text_get=true //jezeli [kolejka] nie jest pusta i mozna [pobrac tekst] { global.text_get=false;//wylacz pobieranie tekstu, aby funkcja sie juz nie wywolala, dopuki znowu nie bedzie true text=ds_queue_dequeue(global.textq);//pobierz tekst z kolejki image=ds_queque_dequeue(global.imageq); .... /// KROK 3 ... text=''; image = -1; global.text_get=true;//ustaw, ze mozna juz pobierac tekst step=0; } } draw: ... // cały poprzedni kod if (image > -1) { draw_sprite(image, 0, 10, 10); // alphę itd. sobie już dopisz sam w draw_sprite_ext ;) } Jeśli dobrze liczę, dodałem raptem 7 linijek kodu. Niewiele trzeba było zmienić, żadnej zabawy, tylko druga kolejka i druga zmienna. Nie wiem dlaczego aż tyle problemu to zajęło, skoro to jest niemal skopiowanie tego samego kodu, tylko zamiast "global.textq" i "text", używasz "global.imageq" i "image". No i nie przypisujesz stringa. -
Czyli coś podobnego do mojego, tylko z predefiniowaną liczbą kolumn i wierszy.
-
no to w GM tak fajnie się raczej nie da. trzeba ręcznie data[0,0] = *. Chociaż można by się pobawić w substringi... będzie mniej wiecej tak, ale piszę to "na sucho" z głowy, bez testowania: var arr = [], a = 0, b = 0,c = ""; for (i=1; i<=string_length(str); i++) { c = string_char_at(str, i); if (ord(c) == 10 or ord(c) == 12) { // znak \n lub \r if (a > 0) { a = 0; b++; /* przenosi tablicę to nowej linii, a > 0 zapobiega sytuacji gdy jest \n\r z rzędu, zamiast tylko \n albo tylko \r (obsługuje zatem windows/linux/mac) */ } // inaczej nie rób nic, trochę jak continue, ale warunki sprawiają, ze nie trzeba go pisać } else { arr[a, b] = c; } } return arr; // powinno zwrócić tablicę.
-
Wstawienie obrazków do textboxa po wyswietleniu się odpowiedniej części tekstu
gnysek odpowiedział(a) na pankracy temat w Pytania zaawansowanych
Tak można bez problemu. -
Wstawienie obrazków do textboxa po wyswietleniu się odpowiedniej części tekstu
gnysek odpowiedział(a) na pankracy temat w Pytania zaawansowanych
Tak naprawdę tworzysz drugi raz to samo, tylko zamiast stringów podajesz obrazki Nie napiszę Ci od zera, bo raz, ze to sporo roboty a dwa, że nie korzystam z GMS 1.4 tylko 2.0, bo GMS 1.4 jest porzucony już niemal rok. -
Wstawienie obrazków do textboxa po wyswietleniu się odpowiedniej części tekstu
gnysek odpowiedział(a) na pankracy temat w Pytania zaawansowanych
No kod będzie taki sam jak do pierwszej chyba? Jesteś w stanie podejrzeć ten kod od rozszerzenia czy nie? -
Patrząc na liczbę FPS, najwyższe taktowanie to będzie 60Hz tak ?
-
Wstawienie obrazków do textboxa po wyswietleniu się odpowiedniej części tekstu
gnysek odpowiedział(a) na pankracy temat w Pytania zaawansowanych
OK, a co robi addtext ? buduje tablicę ? no to zrób drugą z obrazkami i wstawiaj -1 jeśli nie ma obrazka, i na tej podstawie wyświetlaj. -
Odwracanie się w kierunku bohatera
gnysek odpowiedział(a) na Patryqss temat w Pytania początkujących
Masz zupełną rację! Przecież skoro dodałem 45, to 45 na rysunku zamieni się na 90 w kodzie. No ale udało się samemu rozwiązać, czyli będą z Ciebie ludzie Kto drąży i kombinuje ten daleko zachodzi! -
W sensie wgrałeś ISO na SD, czy skorzystałeś z Live Linux USB Creatora ? Bo powinieneś to drugie.
-
Odwracanie się w kierunku bohatera
gnysek odpowiedział(a) na Patryqss temat w Pytania początkujących
var dir = (point_direction(objLew.x, obj.Lewy.y, objHerkules.x, objHerkules.y) + 45) % 360; // dodajemy 45 stopni żeby 0 oznaczało tak naprawdę -45 i bierzemy resztę z dzielenia przez 360, żeby np. 316+45 dawało nam 1 a nie 361. if (dir < 45) { /* prawo */ } else if (dir < 135) { /* góra */ } else if (dir < 225) { /* lewo */ } else { /* dół */} var dir = (point_direction(objLew.x, objLew.y, objHerkules.x, objHerkules.y) + 45) % 360; // dodajemy 45 stopni żeby 0 oznaczało tak naprawdę -45 i bierzemy resztę z dzielenia przez 360, żeby np. 316+45 dawało nam 1 a nie 361. if (dir < 45) { /* prawo */ } else if (dir < 135) { /* góra */ } else if (dir < 225) { /* lewo */ } else { /* dół */} -
[GMS 2] Błąd w skrypcie i problem z room'em
gnysek odpowiedział(a) na rudyy temat w Pytania początkujących
Jak najedziesz na wykrzyknik to się dowiesz czemu - nie widać co jest wyżej, to ciężko zgadnąć, ale obstawiam brak if w 34 linijce ? btw. ten ktoś nie wie jak pisać poprawnie kod, nie ucz sie od niego poprawnie jest: if (...) { ... } if (...) { ... } else { ... } if (...) { ... } else if (...) { ... } if (...) { ... } else if (...) { ... } else if (...) { ... } if (...) { ... } else if (...) { ... } else if (...) { ... } else { ... } itp. itd. Generalnie zalecam też takie formatowanie: if (...) { .... .... .... } else { ... if (...) { .... .... .... } .... } Tak obecnie programuje większość osób (niektórzy wolą klamrę wstawiać w nowej linijce wyrównaną do klamry zamykającej, ale nigdy nie wstawiamy już za klamrą kodu). -
Prze chwilę myślałem że EA oznacza coś innego niż Early Access...
-
json, ds_map i wartość undefined.
gnysek odpowiedział(a) na nowy_user temat w Pytania początkujących
Nie jestem pewien i nie mogę teraz sprawdzić, bo jestem na linuxie, ale zrób taki skrypt: /// SKRYPT: ds_map_find_value_default(id, key, default) var _result = ds_map_find_value(argument0, argument1); if (is_undefined(_result)) return argument2; return _result; -
Dlatego sugerowałem dodać to bezpośrednio jako rozszerzenie do gry w HTML5 i odpalać na jej początku. Wtedy będzie 100% pewności.
-
No czyli GM przypisuje swój event. A spróbuj tak: <script> function myConfirmation() { return 'Are you sure you want to quit?'; } function setOBU() { window.onbeforeunload = myConfirmation; } setTimeout(setOBU, 1000); </script> To po 1 sekundzie od załadowania strony powinno przypisać funkcję. Ewentualnie spróbuj też setInterval - to będzie ciągle co 1 sekundę nadpisywać funkcję gdyby GM też to robił. (losowy ciąg to wynik obfuskacji kodu przez GMa, który zmienne i funkcje zamienia na krótkie unikalne stringi (najczęściej kolejne litery alfabetu).
-
@nowy_user wydzieliłem Twoje pytanie o HTML5 do nowego tematu, bo to nie taka drobnostka wyszła: