gol350 Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 Myślałem że, funkcje różnią się od zmiennych tym że zmienne deklarujesz sam ,a funkcje są już wbudowane w program, ale przeczytałem w pomocy ,że funkcje też można sobie wymyślić samemu. Jak to możliwe ,że program może odczytać za co odpowiada zmienna lub funkcja zdeklarowana przeze mnie (wymyślona przeze mnie) i może tą zmienną wykonać ? Nie śmiejcie się ze mnie .Jestem ciemny w GML-u. np:zmienna "test=0" .Skąd program może wiedzieć za co ona odpowiada. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hunter Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 w zmiennych przechowujesz dane a funkcje wykonują jakis podany przez ciebie kawałek kodu. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 15 Grudnia 2008 Autor Udostępnij Opublikowano 15 Grudnia 2008 w zmiennych przechowujesz dane a funkcje wykonują jakis podany przez ciebie kawałek kodu. Ale jak wymyślę swoją funkcję to skąd program wie jak ją wykonać ,skoro ta funkcja nie jest wbudowana w program. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 funkcje różnią się od zmiennych tym że zmienne deklarujesz sam ,a funkcje są już wbudowanea moło to mamy wbudowanych zmiennych? np sprite_index?może tą zmienną wykonaćhm.. to działa tak: zmienna = 'instance_destroy()', a jej wywołanie to execute_string( zmienna ) takie coś może działać, ale mimo wszystko nie możemy tego nazwać własną funckją. W gm można dodawać skrypty - zapisujesz kawałek kodu, który po podstawieniu paremtrów/argumentów będzie działał, funkcjonował i wyglądał zupełnie jak wbudowane funkcje gm'a Ale jak wymyślę swoją funkcję to skąd program wie jak ją wykonać ,skoro ta funkcja nie jest wbudowana w program. po stworzeniiu swojego skryptu wywołujesz go przez nazwa_skryptu( argument1 , argument2... ) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 15 Grudnia 2008 Autor Udostępnij Opublikowano 15 Grudnia 2008 a moło to mamy wbudowanych zmiennych? np sprite_index?hm.. to działa tak: zmienna = 'instance_destroy()', a jej wywołanie to execute_string( zmienna ) takie coś może działać, ale mimo wszystko nie możemy tego nazwać własną funckją. W gm można dodawać skrypty - zapisujesz kawałek kodu, który po podstawieniu paremtrów/argumentów będzie działał, funkcjonował i wyglądał zupełnie jak wbudowane funkcje gm'a po stworzeniiu swojego skryptu wywołujesz go przez nazwa_skryptu( argument1 , argument2... ) Ale żeby taki skrypt działał to na logikę trzeba wytłumaczyć programowi co ten skrypt ma zdziałać Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 no to na logikę sobie takowy stwórz. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hunter Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 Jesli masz w skrypcie "jakimstam" draw_sprite(x,y,false,lol) to jesli wywołasz go w drawie to to bedzie to samo jakbys napisał tam draw_sprite(x,y,false,lol) Inna sprawą sa argumenty dzieki ktorym mozesz zmieniac dane w skrypcie np : jakistam(): x = argument0 y = argument1 sprite = argument2 draw_sprite(argument0,argument1,false,argument2) Wtedy wywołujesz tą funkcje nie tak : jakistam() tylko jakistam(500,250,spr_lol); Jest chyba na gmc kurs o argumentach i skryptach, poszukaj. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 ale namieszałeś... xP po prostu prawym na folder "Scripts" > new_script i piszesz co Ci na wątrobie leży ;) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Hunter Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 Ja tylko podaje chyba najprostrzy z przykładów aby wiedział i sie nie bał :PP a oto art : https://gmclan.org/index.php?czytajart=1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
don_soyer Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 On chyba nic nie rozumie...nie trzeba programowi nic tłumaczyc, bo nie tworzymy nic nowego. łaczymy poprostu te wbudowane funkcje ze sobą i zmiennymi i to tak dziala. nie tworzymy nowego swiata ;] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 15 Grudnia 2008 Autor Udostępnij Opublikowano 15 Grudnia 2008 On chyba nic nie rozumie...nie trzeba programowi nic tłumaczyc, bo nie tworzymy nic nowego. łaczymy poprostu te wbudowane funkcje ze sobą i zmiennymi i to tak dziala. nie tworzymy nowego swiata ;] AHA czyli wszystko jest już wbudowane w GM-a ,a my tylko tworzymy nowe nazwy ,dane ...itp Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
don_soyer Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 no cos takiego ale... łącząc coś z czymś powstanie Ci niby cos nowego, ale nigdy nie bedzie to nieznane programowi. chyba ze zle wpiszesz, zla skladnia itd. nie wiem jak Ci to inaczej powiedziec, dla mnie to jest oczywiste. musisz troche pomyslec nooo Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 15 Grudnia 2008 Autor Udostępnij Opublikowano 15 Grudnia 2008 no cos takiego ale... łącząc coś z czymś powstanie Ci niby cos nowego, ale nigdy nie bedzie to nieznane programowi. chyba ze zle wpiszesz, zla skladnia itd. nie wiem jak Ci to inaczej powiedziec, dla mnie to jest oczywiste. musisz troche pomyslec nooo Dobrze mi to wytłumaczyłeś . Po prostu łącząc różne funkcje wychodzi coś nowego. Zależy od tego co z czym połączyć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Driger Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 Moze nie napisze nic odkrywczego ale przyklad. 1 + 2 = 3 Mozna to tak zoobrazowac ze cyfry to zmienne a dodawanie to funkcja. Za pomocy dodawania mozna zapisac mnozenie, a potegowanie mozna za pomoca mnozenia. Tak samo jest ze zmiennymi i funkcjami. :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 15 Grudnia 2008 Administratorzy Udostępnij Opublikowano 15 Grudnia 2008 To może po kolei? Zmienna to jest coś co przetrzymuje wartość, funkcja, to jest coś co wykonuje czynności. Np. kartka papieru przetrzymuje zmienne, a niszczarka papieru wykonuje funkcje :) Albo telefon trzyma numery, a wciśnięcie guzika wykonuje funkcję dzwonienia, pod jeden z numerów (zmiennych). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
slabix Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 Miałeś funkcje na matmie :P ? Zmienna to tak jakby kartka na ktorej przetrzymujesz cos. Funkcja to coś co tj. wkładasz tam argumenty (ktore sa zmiennymi (kartkami)), w środku coś się z tą kartką dzieje i wychodzi coś zupełnie nowego xD A jak nie rozumiesz to poszukaj na necie kursów c++ a tych jest dziesiątki, i tam poczytaj o funkcjach które są budowane podobnie. ja sie nauczylem na takim przykladzie: funkcja dodawanie (argument0,argument1) { wynik = argument0+argument1 return wynik } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
gol350 Opublikowano 15 Grudnia 2008 Autor Udostępnij Opublikowano 15 Grudnia 2008 To może po kolei? Zmienna to jest coś co przetrzymuje wartość, funkcja, to jest coś co wykonuje czynności. Np. kartka papieru przetrzymuje zmienne, a niszczarka papieru wykonuje funkcje :) Albo telefon trzyma numery, a wciśnięcie guzika wykonuje funkcję dzwonienia, pod jeden z numerów (zmiennych). To rozumiem, np: zmienna : kartka=1 funkcja : move_contact_all(90,30) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ZeroXbot Opublikowano 15 Grudnia 2008 Udostępnij Opublikowano 15 Grudnia 2008 No, a teraz po co robic własne funkcję? A po to, żeby nie wpisywać za każdym razem do innego obiektu ten sam kod (w przypadku jeśli są to np. jednostki czyli dla każdej trzeba stworzyć ruch) lub chcesz sobie "skrócic" pracę. Ja na początku nie kapowałem jak się robi funkcje. Robiłem skrypt 'script0' i pisałem w nim np tak: GML mojafunkcja(argument0,argument1) { draw_text(argument0,argument1,'blbalala'); } A to było kompletnie, źle tylko nie wiedziałem czemu. Później po zbadaniu paru przykładów skapłem się o co chodzi. Nazwa skryptu np. 'draw_blbalala' to równocześnie nazwa funkcji. w edycji piszesz tylko klamry wewnątrz których piszesz np. to: GML draw_text(argument0,argument1,'blbalala'); i gotowe. Teraz tylko wywołać tą funkcję w drawie pisząc: draw_blbalala(5,40); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 16 Grudnia 2008 Udostępnij Opublikowano 16 Grudnia 2008 ja sie nauczylem na takim przykladzie: funkcja dodawanie (argument0,argument1) { wynik = argument0+argument1 return wynik } Taki sam chciałem zaproponować xD. Faktycznie, programowi należy wytłumaczyć co twoja funkcja ma robić, a tłumaczysz to pisząc JEJ treść :P. Przykład Tworzymy sobie funkcje która będzie dodawać 2 argumenty, towrzymy po to zeby nie wpisywac ciagle ze cos tam rowna sie to + tamto Używanie funkcji polega na wpisaniu jej nazwy a w nawiasie podanie koeljnych argumentów np. sumuj(2,2), co powinno zwrócić do programu wartość = 4, teraz jak to napisać? Dodajemy "script" sumuj a w nim: GML (sumuj) return argument0+argument1; // to dosyć nie skomplikowana funkcja :P return odpowiada za zwracanie wartości do programu Załóżmy, że teraz mamy jakiś obiekt który jest już tak "zaprogramowany" aby rysował na środku ekranu wartość swojej zmiennej lokalnej wynik. Wystarczy w jego create teraz użyć naszej funkcji: GML (create) wynik=sumuj(2,3); // tak jak leci, 2 to argument0 a 3 to argument1 | return sprawia, ze //wartość sumowania jest zwracana odrazu do zmiennej wynik. Ot i cała filozofia. Program ma wszystko jak na dłoni. Wchodzi do funkcji i widzi: return argument0+argument1; Aha, czyli mam zwrócić to co uzytkownik podal zaraz po nawasie (arg0) + to co dal po przecinku(arg1) Myślę, że to troszkę rozjaśni sprawę xD Ciekawostka, jeśli nie podasz żadnych argumentów przybierają one domyślną wartość = 0. It's more of Pablo's USELESS KNOLEEEDGE! 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ę