Opisek Opublikowano 29 Grudnia 2013 Udostępnij Opublikowano 29 Grudnia 2013 Witam w tym poście chciałbym zrobić poradnik, a w tym poradniku chciałbym wprowadzić nowych do gm'a. W tym poradniku pokażę wam sztuczną inteligencję, pieniądze oraz wszystkie możliwości okien dialogowych. A więc zaczynajmy! Po pierwsze tworzymy obiekt Gracz i dajemy mu jakiś obrazek. [Tworzymy 5 eventów w obiekcie Gracz Key Press Left Key Press Right Key Press Up Key Press Down Key Relase Any Key W Left wkładamy pierwszy klocek z zakładki Move w dziale Move czyli Move Fixed. Skoro to przycisk strzałki w lewo to w tym co nam się pokaże po przesunięcia klocka Move Fixed do eventu zaznaczamy strzałkę w lewo i pod tym ustalamy prędkość, ja ustalę 3. Z resztą eventów Key Press robimy to samo, w Right poruszanie się w prawo, w up w górę, a w down w dół. W event Key Relase Any Key wkładamy ten sam klocek, ale klikamy w nim klocek po środku strzałek, a prędkość ustalamy na 0. W ten sposób uzyskujemy podstawowe chodzenie] [Teraz tworzymy obiekt Kamien a w nim trochę pod nazwą klikamy Solid W obiekcie Gracz tworzymy event Colision -> Kamien. W tym evencie wstawiamy klocek z zakładki Move, z działy Jump czyli Bounce W ten sposób uzyskujemy odbijanie się od skały] [Teraz stworzymy mini-sklepik. U bohatera tworzymy event kliknięcia jakiegoś przycisku, a w nim z zakładki Control, z działu Code wybieramy Execute Code i do niego wklejamy to: GML wybor = 0; menu = show_message_ext("Co chcesz kupić?","Broń?","Teren?","Nic?"); if menu == 1 { wybor=show_message_ext("To będzie kosztowało 20 kryształów. Czy potwierdzasz zakup?","Tak","","Nie"); if (wybor == 1) and (score>20) and (global.bron == 0) { global.bron = 1 wybor = 0 score -= 20; } } else if menu == 2 { wybor = show_message_ext("To będzie kosztowało 10 kryształów. Czy potwierdzasz zakup?","Tak","","Nie"); if (wybor == 1) and (score > 10) and (global.teren < 3) { global.teren += 1; wybor = 0; score -= 10; } } W evencie create bohatera do Execute Code wklejamy to: GML global.odstep=get_integer("Jaki ma być odstęp między strzałami wroga?","100") global.bron=0 wybor=0 global.teren=0 global.strzal Teraz tłumaczenie! get_integer to pytanie o numerek global.odstep,wybor, global.teren i global.bron to zmienne z początkową wartością 0 Gdy klikniemy przycisk sklepiku pojawi się pytanie z trzema przyciskami. Co chcesz kupić? [broń?] [Teren?] [Nic] Wywołuje to kod show_message_ext("","","","") Przed nim mamy menu= z czego wychodzi menu=show_message... To sprawia, że zmienna menu dostanie wartość po kliknięciu przycisku. [broń?] - 1 [Teren?] - 2 [Nic?] - 3 Po tym jest napisane if menu=1 {wybor=show_message_ext("To będzie kosztowało 20 kryształów. Czy potwierdzasz zakup?","Tak","","Nie") If oznacza jeżeli, więc kod oznacza jeżeli menu=1.... if to komenda menu=1 to tekst logiczny a po tekście logicznym stawiamy akcję w tych nawiasach {} W nawiasach mamy ten sam kod, który nas pyta o to co chcemy kupić, ale tutaj mówi do nas To będzie kosztowało 20 kryształów. Czy potwierdzasz zakup? i mamy dwa przyciski: Czy potwierdzasz zakup? [Tak] [Nie] W kolejnym if'ie game maker sprawdza czy mamy powyżej 20 monet oraz czy nie zakupiliśmy już tego produktu. Jeżeli wszystko się zgadza, kod odbiera nam 20 monet, a zmianną bron zamienia na 1. Dalej mamy tak samo tylko tym razem game maker sprawdza czy mamy ponad 10 krzyształów i czy nie mamy maksymalnego poziomu terenu. ] [ Skoro mamy sklepik, to czas na walutę. Tworzymy obiekt i dajemy mu obrazek. Tworzymy także drugi obiekt, ale jego teksturka powinna być nie widoczna, lecz jednak istnieć. U mnie to jest czarny piksel. W obiekcie punktu tworzymy event Colision --> Gracz, a do niego wsadzamy klocek z zakładki main1 z działu Objects na pierwszej pozycji z drugiego rzędu czyli Change Instance ---> Zamiennik_Kryształu (czyli ten piksel) oraz Execute Code w którym wpisujemy po prostu GML score+=1; W zamienniku kryształu dajemy natomiast Colision ---> Wrog, a w tym Change Instance --> Kryształ W ten sposób tworzymy kryształ, który po wejściu na niego znika i dodaje punkt, a gdy najedzie na niego wróg znów się pojawia ] [Czas na wrogów! Pierwszy krok sztucznej inteligencji, czyli chodzenie za graczem omijając przeszkody. GML mp_potential_step_object (Gracz.x, Gracz.y, 1, Kamien) Ten kod ^^^ wstawiamy do step. Słowo potential niektórym kojarzy się z inteligenncją. Kod mp_potential_step_object to podążanie do danego punktu omijając przeszkody. Pierwszy argument (Gracz.x) - koordynat x, do której ma podążać obiekt. Drugi argument (Gracz.y) - koordyt y, do której ma podążać obiekt. Trzeci argument (1) - prędkość z jaką ma podążać obiekt. Czwarty argument (Kamien) - obiekt, który ma omijać podczas podążania do podanej koordynacji. Teraz drugi stopień sztucznej inteligencji. Tworzymy event Begin Step, a w nim w Execute Code: GML if global.strzal == 1&&global.bron == 1&&distance_to_object(Gracz)<=100; { alarm[4]=1; } To spowoduje nam nadanie alarmowi 4 wartości 1, kiedy broń będzie aktywna, a gracz będzie przybliżony do wroga o minimum 99. Tworzymy event alarm 4 a w nim kod: GML global.strzal=2 alarm[4]=global.odstep; oraz alarm 5: GML instance_create(Wrog.x,Wrog.y,Strzal_Zly) global.strzal=1 Teraz tworzymy obiekt Strzal_Zly, a w nim dajemy to: Event Create > Zakładka main2 > Dział Timing > 1 czyli Set Alarm Pierwsze okienko - 100 Drugie okienko - Alarm 3 Alarm 3 > Zakładka main1 > Dział Objects > 2 w 2 rzędzie czyli Destroy the instance To wszystko spowoduje usunięcie się z planszy strzału po minięciu 100 kroczków. Step > Execute Code GML mp_potential_step_object (Gracz.x, Gracz.y, 2, object2) Zderzenie z obiektem t1,t1,t1 > odbicie * Te obiekty w następnych nawiasach W ten sposób uzykujemy sztuczną inteligencję wrogów! ] [Tworzymy jeszcze trzy obiekty; t1,t2 i t3, każdy z nich ma mieć zaznaczone solid, a ich tekstura, najlepiej żeby była taka sama jak kamień. W t1, w evencie Step, w Execute Code dajemy: GML if global.teren == 1 {instance_destroy();} To spowoduje czekanie aż zmienna global.teren będzie miała wartość 1 i wtedy usunięcie się z planszy. W t2 i t3 robimy to samo, lecz tym razem global.teren == 2, a w t3 == 3. U gracza i wroga robimy eventy Zderzenia z każdym z tych bloczków, a w nich odbicie jak w drugich nawiasach.] [ Tworzymy obiekt pocisk, a w nim: Create>Move>Move>Pierwsze czyli Move Fixed Zaznaczamy wszystkie strzałki i ustalamy prędkość. Colision ---> Kamien>main1>Objects>Destroy the instance ^^^ Robimy tak samo jak tutaj ^^^ przy zderzeniu z t1,t2,t3 Obiekt Gracz>Przycisk do strzału>Control>Code>Embed Code GML if global.bron == 1 {instance_create(Gracz.x,Gracz.y,pocisk)} I mamy strzelanie i tym samym całą grę! Jeszcze tylko u gracza przy zderzeniu ze złym pociskiem w kodzie score-=10, a u wroga przy zderzeniu z pociskiem score+=10 ] Przykład: (Oczywiście całkowity zakaz udostępniania projektu[chyba, że dosyć go przerobiliście, ale i tak dajecie mnie i ten post w creditsach]bez mojej wiedzy, zgody i w waszym imieniu) Klikunio :D P.S. Wprowadziłem sobie jeszcze prostą konsolkę do kodów pod eventem Key Relase Ctrl u Gracza, można sobie zobaczyć :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 29 Grudnia 2013 Udostępnij Opublikowano 29 Grudnia 2013 Do dupy. Nic się nie trzyma kupy. Przyciągasz napisem "sztuczna inteligencja wrogów" a jedyne co robisz to sterowanie w 4 kierunkach i to na klockach nie tłumacząc nic. Nawet czemu robisz to sterowanie. Potem robisz odbijanie od obiektu... Przypominam przed chwilą że zrobiłeś poruszanie top-down w 4 kierunkach. Odbijanie od obiektów przy takim sterowaniu jest głupie, nawet jak dla początkujących. Użycie show_message_ext jest idiotyczne. Nie używa się tego do takich rzeczy. Jest to bardzo proste, ale jeżeli masz zamiar 'robić sklep' w swojej grze, to może warto nauczyć się robić to w jakikolwiek dobry sposób. Nazwałeś to "Początki z game maker", a to nie są żadne początki. Nic nie wytłumaczyłeś, a od razu wyjaśniasz kod. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Matrix_ Opublikowano 29 Grudnia 2013 Udostępnij Opublikowano 29 Grudnia 2013 Wydaje mi sie ze za bardzo skaczesz po funkcjach. Zamiast wytlumaczyc od podstaw... Warto rowniez zaznaczyc ze Twoj poradnik dla poczatkujacych nie bedzie dzialal w GM:S Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
asdfMaciej Opublikowano 29 Grudnia 2013 Udostępnij Opublikowano 29 Grudnia 2013 [...] GML pot=0 menu=show_message_ext("Co chcesz kupić?","Broń?","Teren?","Nic?") if menu=1 {pot=show_message_ext("To będzie kosztowało 20 kryształów. Czy potwierdzasz zakup?","Tak","","Nie") if pot=1&&score>20&&bron=0{bron=1 pot=0 score-=20}} if menu=2 {pot=show_message_ext("To będzie kosztowało 10 kryształów. Czy potwierdzasz zakup?","Tak","","Nie") if pot=1&&score>10&&global.teren<3{global.teren+=1 pot=0 score-=10}} [...] Nie ucz paskudnych nawyków. 1. W warunkach pętli if, używamy == zamiast =. 2. Po linijkach stawiamy średniki. 3. Formatujemy kod. 4. Nie używamy krótkich nazw zmiennych, z których nie można się nic domyśleć. 5. Należy używać else if bądź pętli switch (jeśli takowa istnieje w gml, nie pamiętam). Poprawiłem ten kod trochę: GML wybor = 0; menu = show_message_ext("Co chcesz kupić?","Broń?","Teren?","Nic?"); if menu == 1 { wybor=show_message_ext("To będzie kosztowało 20 kryształów. Czy potwierdzasz zakup?","Tak","","Nie"); if (wybor == 1) and (score > 20) and (bron == 0) { bron = 1 wybor = 0 score -= 20; } } else if menu == 2 { wybor = show_message_ext("To będzie kosztowało 10 kryształów. Czy potwierdzasz zakup?","Tak","","Nie"); if (wybor == 1) and (score > 10) and (global.teren < 3) { global.teren += 1; wybor = 0; score -= 10; } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 29 Grudnia 2013 Udostępnij Opublikowano 29 Grudnia 2013 Jakieś niekonsekwentne te twoje formatowanie. Raz przed piszesz GML score-=10; wybor=0; innym razem ze spacjami: GML score -= 10; wybor = show_message Raz nie ma średników innym razem są. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
asdfMaciej Opublikowano 30 Grudnia 2013 Udostępnij Opublikowano 30 Grudnia 2013 Ojć, nie zauważyłem wszystkiego. Mój błąd! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Korodzik Opublikowano 30 Grudnia 2013 Filar Społeczności Udostępnij Opublikowano 30 Grudnia 2013 Początkujący nic z tego nie zrozumie. Chaotycznie i przypadkowo skaczesz z tematu na temat i nic nie wyjaśniasz. Wyobraź sobie, że pierwszy raz w życiu uruchomiłem GM, a ty od razu z grubej rury: Po pierwsze tworzymy obiekt Gracz i dajemy mu jakiś obrazek. Tworzymy 5 eventów w obiekcie Gracz Że jak? Że co? Co to "obiekt"? Jak go zrobić, jak "dać mu obrazek"? Co to są "eventy" i jak je stworzyć? Poczytaj sobie lepsze tutoriale dla początkujących i zobacz, jak są zrobione. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Opisek Opublikowano 30 Grudnia 2013 Autor Udostępnij Opublikowano 30 Grudnia 2013 Do dupy. Nic się nie trzyma kupy. Przyciągasz napisem "sztuczna inteligencja wrogów" a jedyne co robisz to sterowanie w 4 kierunkach i to na klockach nie tłumacząc nic. Nawet czemu robisz to sterowanie. Potem robisz odbijanie od obiektu... Przypominam przed chwilą że zrobiłeś poruszanie top-down w 4 kierunkach. Odbijanie od obiektów przy takim sterowaniu jest głupie, nawet jak dla początkujących. Użycie show_message_ext jest idiotyczne. Nie używa się tego do takich rzeczy. Jest to bardzo proste, ale jeżeli masz zamiar 'robić sklep' w swojej grze, to może warto nauczyć się robić to w jakikolwiek dobry sposób. Nazwałeś to "Początki z game maker", a to nie są żadne początki. Nic nie wytłumaczyłeś, a od razu wyjaśniasz kod. Napisałem DOKOŃCZĘ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 30 Grudnia 2013 Udostępnij Opublikowano 30 Grudnia 2013 Ty nawet nie zacząłeś, a od razu wskoczyłeś... na nawet nie wiem gdzie bo nie powiedziałeś. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Korodzik Opublikowano 30 Grudnia 2013 Filar Społeczności Udostępnij Opublikowano 30 Grudnia 2013 Napisałem DOKOŃCZĘ Skoro to niedorobiona wersja, to po co ją wrzucać? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Opisek Opublikowano 30 Grudnia 2013 Autor Udostępnij Opublikowano 30 Grudnia 2013 Nie ucz paskudnych nawyków. 1. W warunkach pętli if, używamy == zamiast =. 2. Po linijkach stawiamy średniki. 3. Formatujemy kod. 4. Nie używamy krótkich nazw zmiennych, z których nie można się nic domyśleć. 5. Należy używać else if bądź pętli switch (jeśli takowa istnieje w gml, nie pamiętam). Poprawiłem ten kod trochę: GML wybor = 0; menu = show_message_ext("Co chcesz kupić?","Broń?","Teren?","Nic?"); if menu == 1 { wybor=show_message_ext("To będzie kosztowało 20 kryształów. Czy potwierdzasz zakup?","Tak","","Nie"); if (wybor == 1) and (score>20) and (bron == 0) { bron = 1 wybor = 0 score -= 20; } } else if menu == 2 { wybor = show_message_ext("To będzie kosztowało 10 kryształów. Czy potwierdzasz zakup?","Tak","","Nie"); if (wybor == 1) and (score > 10) and (global.teren < 3) { global.teren += 1; wybor = 0; score -= 10; } } Dzięki postaram się poprawić. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
MaxGaming Opublikowano 30 Grudnia 2013 Udostępnij Opublikowano 30 Grudnia 2013 Propo else zamiast switch to kiedyś, gdzieś czytałem, że ponoć switch z 2 opcjami jest kilkakrotnie szybszy niż if z else, a przy większej ilości opcji to już chyba naturalne. Prawda to? Bo jeżeli tak to może nawet lepiej :P Chociaż dla mnie zawsze(przyzwyczajenie) bardziej czytelny będzie if. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 30 Grudnia 2013 Udostępnij Opublikowano 30 Grudnia 2013 Propo else zamiast switch to kiedyś, gdzieś czytałem, że ponoć switch z 2 opcjami jest kilkakrotnie szybszy niż if z else, a przy większej ilości opcji to już chyba naturalne. Prawda to? Bo jeżeli tak to może nawet lepiej :P Chociaż dla mnie zawsze(przyzwyczajenie) bardziej czytelny będzie if. Test wykonany w ten sposób: GML timeStart = current_time; zmienna1 = 0; zmienna2 = 1; repeat ( 100000000 ) { if ( zmienna1 == 0 ) { zmienna2 = 50; } else if ( zmienna1 == 1 ) { zmienna2 = 100; } } time1 = current_time - timeStart; timeStart = current_time; repeat ( 100000000 ) { switch ( zmienna1 ) { case 0: zmienna2 = 50; break; case 1: zmienna2 = 100; } } time2 = current_time - timeStart; show_message( "Czas ifa: " + string(time1) + "#Czas switcha: " + string(time2) ); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
asdfMaciej Opublikowano 30 Grudnia 2013 Udostępnij Opublikowano 30 Grudnia 2013 No i patrz, nie posłuchał. GML global.bron=0 pot=0 global.teren=0 GML global.bron = 0; global.teren = 0; wybor = 0; // przeciez ja ci zamienilem w tamtym kodzie pot na wybor!</span> Po tym jest napisane if menu=1 {pot=show_message_ext("To będzie kosztowało 20 kryształów. Czy potwierdzasz zakup?","Tak","","Nie") "Skąd ty ten kod wytrzasnąłeś?" - typowy użytkownik Dalej mamy tak samo tylko tym razem game maker sprawdza czy mamy ponad 10 krzyształów i czy nie mamy maksymalnego poziomu terenu. ] "Krzyształy", hehe. GML mp_potential_step_object (Gracz.x, Gracz.y, 1, Kamien) Ten kod ^^^ obstawiam, że ci się nie skompiluje. A na 100% będzie miał problemy z kilkoma graczami. Odnosisz się do objectu, a nie do instance. Robisz w ty momencie błąd. Ja bym to przerobił na GML graczX = -1; graczY = -1; with (Gracz) { other.graczX = x; other.graczY = y; } if (graczX != -1) and (graczY != -1) { // a co jesli gracz nie istnieje? mp_potential_step_object(graczX, graczY, 1, Kamien); } Słowo potential kojarzy nam się z inteligenncją. nie Pierwszy argument (Gracz.x) - koordynacja x, do której ma podążać obiekt. Drugi argument (Gracz.y) - koordynacja y, do której ma podążać obiekt. raczej koordynat :thumbsup: GML if global.teren == 1 {destroy_instance();} Powodzenia z kompilowaniem nieistniejącej funkcji :thumbsup: No chyba, że zrobiłeś własną. 3/10 za starania i dobre chęci Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Opisek Opublikowano 30 Grudnia 2013 Autor Udostępnij Opublikowano 30 Grudnia 2013 1. W tej gierce gracz akurat ma istnieć 2. No tak... destroy_instance Musiało mi się coś pomieszać. 3. Słowo potential NIEKTÓRYM (nie nie tylko mnie :D) kojarzy się z inteligencją 4. Trzeciej uwagi nie zrozumiałem... Przecież każdy normalny patrzy na malutkie tabelki z kodami ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kriso99 Opublikowano 30 Grudnia 2013 Udostępnij Opublikowano 30 Grudnia 2013 gamemaker nie wymaga stawiania ";" na końcu lini, wg mnie to niepotrzebne po co dawać if i==4 jak mozna if i=4, po co te utrudnienia?! [...] (jeśli takowa istnieje w gml, nie pamiętam).[...] nie znasz sie to nie pisz!!! lol Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Czarny Ass Opublikowano 30 Grudnia 2013 Udostępnij Opublikowano 30 Grudnia 2013 Nawet ja pamiętam, że to było instance_destroy(); gamemaker nie wymaga stawiania ";" na końcu lini, wg mnie to niepotrzebne po co dawać if i==4 jak mozna if i=4, po co te utrudnienia?! Jakie znowu utrudnienia? Jak się chce umieć programować to trzeba znać pewne zasady programowania. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kriso99 Opublikowano 30 Grudnia 2013 Udostępnij Opublikowano 30 Grudnia 2013 ale to nie zasada gamemakera!!! dzieki za reporta, na pewno dostane bana na rok, gdyż obraziłęm cały świat swoim rasizmem(?!) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
asdfMaciej Opublikowano 30 Grudnia 2013 Udostępnij Opublikowano 30 Grudnia 2013 ale to nie zasada gamemakera!!! dzieki za reporta, na pewno dostane bana na rok, gdyż obraziłęm cały świat swoim rasizmem(?!) Aż śmierdzi trollem. :thumbsup: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 30 Grudnia 2013 Udostępnij Opublikowano 30 Grudnia 2013 W tym wypadku to nie troll, a sarkazm. Oboje macie trochę racji. GMowi nie robi różnicy czy jest = czy ==, oraz czy są średniki, albo tabulacja. Dlatego najważniejsze jest to aby kod był dla was czytelny i prosty. asdfMaciej ma rację bo warto uczyć się dobrych nawyków, ale nie używanie średników w GM wcale nie jest złym nawykiem gdzie zgodzę się z kriso99. Czasami warto zaoszczędzić sobie trudu ruszania palcem o 3cm. Śmiało mogę powiedzieć że używanie == do warunków logicznych jest bardzo dobrym nawykiem. Natomiast to co pokazuje Opisek to przepis na zakalec, w dodatku przesolony kwasem solnym. (Rozumiecie? Kawas solny. :D) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
asdfMaciej Opublikowano 30 Grudnia 2013 Udostępnij Opublikowano 30 Grudnia 2013 [...](Rozumiecie? Kawas solny. :D) Literówka. :thumbsup: Powodzeniu w dalszym byciu moderatorem! :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kriso99 Opublikowano 31 Grudnia 2013 Udostępnij Opublikowano 31 Grudnia 2013 Literówka. :thumbsup: Powodzeniu w dalszym byciu moderatorem! :) hahahahahhah to był dobry trol a tak na serio jezeli ktos sie chce bawic w gamemakerze to po kiego grzyba ma sie uczyc nie potrzebnych nawyków o boże nie zrobiłem średnika. Jestem złym programista, mój kod jest bezużyteczny, ide sie zabic :crying: Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
asdfMaciej Opublikowano 31 Grudnia 2013 Udostępnij Opublikowano 31 Grudnia 2013 jak taki jesteś cwaniak, to podaj swoją poprawkę kodu ;]] protip: skrót do kopiowania to CTRL+C, a do wklejania to CTRL+V użytecznym skrótem też jest ALT+F4 ;] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Opisek Opublikowano 31 Grudnia 2013 Autor Udostępnij Opublikowano 31 Grudnia 2013 No i zrobiła się dyskusja na temat czy stawiać ; czy też nie czy robić == czy też nie czy robić________tak___przy___________każdym______kodzie. O co wam chodzi?! _____ = spacja (chociaż w tej dyskusji poprawniej napisać) GML ___ == ["space"]; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
asdfMaciej Opublikowano 31 Grudnia 2013 Udostępnij Opublikowano 31 Grudnia 2013 Racja, walić spacje :// GML if moznaOdbijac==true{ moznaOdbijac=false przyspieszenie=0 szybkosc_paletki=other.yprev-other.y; if szybkosc_paletki==0{ kierunek=0+(180-kierunek) przyspieszenie=0.2; } else if szybkosc_paletki>0{ kierunek=0+(180-kierunek)+random_range(20,45); przyspieszenie=0.4; }else if szybkosc_paletki<0{ kierunek=0+(180-kierunek)-random_range(20,45) przyspieszenie=0.4; } x+=lengthdir_x(7,kierunek); y+=lengthdir_y(7,kierunek); alarm[0]=3; if szybkosc<14{ szybkosc+=przyspieszenie; with(oPaletka){ szybkosc=szybkosc+(other.szybkosc/szybkosc)*other.przyspieszenie; } } if global.particles==true{ part=part_type_create(); system=part_system_create(); emitter=part_emitter_create(system); part_system_depth(system,depth) part_emitter_region(system,emitter,x,x+-4,y,y+-76,ps_shape_line,ps_distr_linear); part_type_alpha3(part,1,1,1); part_type_color2(part,255,65280); part_type_shape(part,pt_shape_star); part_type_life(part,50,50); part_type_speed(part,4.27,7.79,0.68,0); part_type_direction(part,-20.56,5.53,0,0); part_type_gravity(part,0.66,177.27); part_type_orientation(part,0,0,-7.27,0,0); if szybkosc>9 and szybkosc<11{ part_emitter_burst(system,emitter,part,15); } else if szybkosc>=11 and szybkosc<13{ part_emitter_burst(system,emitter,part,20); }else if szybkosc>=13{ part_emitter_burst(system,emitter,part,35); } } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 31 Grudnia 2013 Udostępnij Opublikowano 31 Grudnia 2013 Aż bym sam napisał jakiś tutorial, ale chyba nie byłoby na niego popytu, bo większa część userów tutaj po prostu skopiowałaby dołączony przykład i nawet nie zerknęła na treść tego tutka :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Lechu4444 Opublikowano 31 Grudnia 2013 Udostępnij Opublikowano 31 Grudnia 2013 hahahahahhah to był dobry trol a tak na serio jezeli ktos sie chce bawic w gamemakerze to po kiego grzyba ma sie uczyc nie potrzebnych nawyków Gdyż większość użytkowników po kilku miesiącach stwierdza że GM jest za słaby na ich wyobraźnię i przerzucają się na inne języki programowania a tam już takich ustępstw nie ma, poza tym warto wyznaczyć jakieś reguły w pisaniu kodu tak aby był czytelny dla większości użytkowników bo często zdarza się tak że ludzie dają jakiś kod w pytaniach dla początkujących czy coś i jeśli te reguły są stosowane to łatwiej innym użytkownikom go rozgryźć. Oczywiście każdy user tutaj wie że GM jest bardzo wyrozumiały i oczywiście rozczytają kod w którym w warunkach będzie stosowany pojedyńczy znak "=" do porównywania, ale milej patrzy się na kod który jest zrobiony tak jak my zazwyczaj piszemy. No i zrobiła się dyskusja na temat czy stawiać ; czy też nie czy robić == czy też nie czy robić________tak___przy___________każdym______kodzie. O co wam chodzi?! _____ = spacja (chociaż w tej dyskusji poprawniej napisać) GML ___ == ["space"]; W tym wypadku znakowi spacjii przypisujesz wartość _____ więc powinno być: GML " "=_____ PAMIĘTAJ!!! = - przypisz == - porównaj chyba że wolisz z języka PASCAL, ale wtedy masz := - przypisz = - porównaj Nie wiem czy przypisanie z języka PASCAL działa w GM ale można szybko sprawdzić. ;P [Edit] @Amaterasu: Dlaczego napisz ja chętnie przeczytam... I jestem ciekaw co tam dasz w tym przykładzie że wszyscy będą go kopiować ;P A tak co do oceny tego tutoriala to pamiętam jak wczoraj tu zajrzałem zacząłem czytać, ale rzeczy wydawały mi się na tyle proste że zrezygnowałem z dalszej lektury i wstrzymałem się z oceną. Myślę że ten tutorial pomoże w sumie najbardziej jego autorowi bo dostał już kilka wskazuwek, ale warto by było poprawić to i owo co piszą tutaj bardziej zaawansowani userzy bo faktycznie jak ktoś nowy zacznie szukać tutków i trafi tu to nie wiem czy będzie mu się chciało cały temat czytać. [Edit2] miało wyjść mądrze a wyszło jak zawsze z błędem ortograficznym którego mi Firefox nie podkreślił, jak coś to już poprawiłem. ;P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Czarny Ass Opublikowano 31 Grudnia 2013 Udostępnij Opublikowano 31 Grudnia 2013 No dobra, średnik to oszczędność czasu, więc jak ktoś olewa ważne nawyki i nie chce nic umieć to ok, ale pisząc = i tak mamy palec na znaku "=", więc chyba nic się nie stanie jak nadusimy jeszcze raz na ten znak, czyż nie? Ale najważniejsze - konsekwentność w kodzie. Jak piszesz ciągle "=" to bez sensu nagle pisać "==". :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się