-
Postów
9 823 -
Dołączył
-
Ostatnia wizyta
-
Wygrane w rankingu
143
Typ zawartości
Profile
Forum
Wydarzenia
Treść opublikowana przez gnysek
-
Master? Patrz na to. 12 linijek kodu zmniejszone do 4. //zakładając, ze global.difficulty ma wartosci 0,1,2 var _hp_loose = [17, 25, 34]; if (global.zegarObrazen < 0) { global.hp -= _hp_loose[global.difficulty]; global.zegarObrazen = room_speed*2; } no i jak enum nie znasz, to mozesz: #macro d_easy 0 #macro d_medium 1 #macro d_hard 2 // potem global.difficulty = d_easy; // mozna tez bez d_, ale wtedy zablokujesz opcje nazywania tak zmiennych :P
-
Teraz sztuczka: enum difficulty { easy = 1, medium = 2, hard = 3 }; /// gdzies tam indziej w kodzie global.hp -= 10 * global.difficulty; //10,20,30 alternatywnie enum difficulty { easy, medium, hard }; /// gdzies tam indziej w kodzie global.hp -= 10 + (15 * global.difficulty); // 10, 25, 40 dlatego poziom trudności jako string jest bez sensu
-
Może być. Ja akurat takie zmienne definuję wcześniej, na początku gry, to wtedy można je przenosić pomiędzy poziomami.
-
Global oznacza , że taka zmienną jest jedna współdzielona na całą grę. Jak ja dasz w przeciwnikach, to wszystkim na raz zmienisz, to bez sensu. A hspeed czy vspeed są zależne od speed i direction, więc jak zmieniasz tamte zmieniają się te (albo jak jakoś kod powoduje ich zmianę). To są współbieżne zmienne - zmiana jednych zmienia drugie i vice versa.
-
zamiast "easy" itp. możesz też enuma zrobić. Bo potem łatwo o literówkę, a tak kompilator/sprawdzanie składni wykrywa błąd.
-
Microsoft Remote Desktop 10 ? darmowy, w appstore, oficjalna apka MS.
-
Generalnie to będzie złamanie praw autorskich, jesli będzie bardzo podobny. Pytanie, czy Nintendo na to trafi, bo ja widziałem firmy hydrauliczne które mają mario na samochodzie i nikt im nic nie zrobił - ale w sieci by już tak fajnie nie mieli. Natomiast nie powinna być problemem "parodia" postaci - czyli np. postać podobna do mario, w stylu innych postaci w grze, i nie mająca na imię mario. W żadym też wypadku z charakterystycznym "M" na głowie - Ubisoft dla Raymana czy Raving Rabbidsów z czapką Mario też pozyskiwał licencję. Dobry przykład bez licencji - Asterix i Obelix XXL:
-
No to chyba logiczne, co robisz źle tu cyfry, tu tekst
-
[GMS 2] Błąd w skrypcie i problem z room'em
gnysek odpowiedział(a) na rudyy temat w Pytania początkujących
W 7:17 nie ma nic z roomem. Jeśli chodzi o speed, to jest w global game settings, a reszta powinna być w roomie normalnie. -
hit miesiaca, ustawiać w kodzie po kolei każdy poziom trudności tak, że ustawi się zawsze ostatni. Pomyśl na spokojnie co tam piszesz, linijka po linijce mów na głos - to jest dokładnie to co gra zrobi w jedną klatkę obrazu.
-
ds_list to nie tablica i nie kasuje sie automatycznie, więc memory leak jak nic.
-
Kod powinien znajdować sie tam, gdzie go potrzebujesz. Nie wiem jak tworzysz przeciwników, czy stawiasz ich w roomie, czy tworzy ich jakiś obiekt-nadzorca. Musisz sobie sam odpowiedzieć na swoje pytanie bo to Ty wiesz jak robisz grę i co w niej jest, my nie będziemy zgadywać, a ściany kodu nie pomagają. Trzeba zawsze minimalizować problem, a nie po prostu wklejać kod który nic nie mówi, albo nie jest potrzebny.
-
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.