vincenty4 Opublikowano 20 Września 2008 Udostępnij Opublikowano 20 Września 2008 Witam Mam pytanie jaki kod użyć, żeby zniszczyć 1 obiekt, tak żeby zaraz wsyztkie się nie niszczyły. Taki przykład: żeby zrobić figurkę z gliny muszę mieć jej powiedzmy 3, a w plecaku mam 5. Gdzy wstawie kod z instance_destroy to zniszczy mi wszystkie gliny, a kodu z IP też nie użyje, bo przecież nie wiadomo którą akurat glinę będę miał w plecaku (no bo nie zawsze biorę z ziemi kurat tą konkretną). Poprostu: jak zniszczyć 1 obiekt danego rodzaju tak żeby nie zniszcyć reszty, ale bez znajomego IP (nie zawsze będzie to obiekt o tym akurat IP) . Ciężko mi to opisać, ale chyba wyraziłem się jasno. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
sfinkss Opublikowano 20 Września 2008 Udostępnij Opublikowano 20 Września 2008 znam Twój problem; ) zrób tak (mi to działa, niszczy tylko jeden, nie wszystkie) np. masz tak: obj_bomba obj_ściana kolizja obj_bomba z obj_ściana instance_destroy; kolzija obj.ściana z obj. bomba instance_destroy; no, rozumiesz? musisz instance'a dać i tu i tu. w kod tego co się niszczy i w kod tego niszczącego. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
LolikZabijaka Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 a nie masz przypakiem ustalonej ilości życia dla tych obiektów ?? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rewlisz Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 A te obiekty do czego ci służą? Są w plecaczku, są wrogami czy coś. Jak w plecaku to podaj jego kod. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 Zacznijmy od tego że można zniszczyć oba obiekty przy kolizji z jednego obiektu: GML instance_destroy(); with( other ) { instance_destroy(); } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
pablo1517 Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 Tymon znów za szybko... nie sprawiedliwe :( Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 O 23 minuty. Zdecydowanie szybki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harrrry Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 Tego już za wiele! OBIEKT != INSTANCJA >_< http://pl.wikipedia.org/wiki/Instancja_(programowanie) http://pl.wikipedia.org/wiki/Klasa_(programowanie) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 I o co chodzi? Instancja oznacza konkretny obiekt istniejący w pamięci operacyjnej. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harrrry Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 Nadal nie widzicie różnicy? Instancja to jeden konkretny egzemplarz obiektu który istnieje w roomie. Każdy ma swój unikalny ID większy lub równy 100000. Obiekt to definicja zachowania wszystkich jego instancji, jeden z zasobów gry (sprity, soundy, roomy). Obiekty też mają swoje IDy jak inne zasoby, czyli większe lub równe 0. Aby otrzymać tą liczbę trzeba po prostu wpisać nazwę (np. obj_player) Tak więc instance_destroy() nie usuwa obiektu, tylko aktualną instancję która wykonuje ten skrypt. Można też usunąć wszystkie INSTANCJE obiektu [with(objID)instance_destroy();]. Obiekty własciwie można usuwać ale jest to bez sensu, przed usunięciem obiektu trzeba się upewnić że nie istnieje żadna jego instancja. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 Tak jest w GM. Co nie zmienia faktu, że w programowaniu obiekt to obiekt, a klasa to klasa. I nie rozumiem dlaczego podałeś te odnośniki do wiki, bo to przeczy temu co napisałeś. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
copoconaco Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 Można też usunąć wszystkie INSTANCJE obiektu [with(objID)instance_destroy();]. Obiekty własciwie można usuwać ale jest to bez sensu, przed usunięciem obiektu trzeba się upewnić że nie istnieje żadna jego instancja. no jak podam id to usunie te jedna "instancje" o tym wlasnie id, a nie wszystkie... co do problemu: robisz inventory jakies na obiektach, coz twoja wola masochisto. https://gmclan.org/up3255_11_test_kill.html prostacki przyklad niszczenie kilku obiektow - WCISKAMY SPACJE I PODAJEMI LICZBE OBIEKTOW DO LIKWIDACJI Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harrrry Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 with(100000+) dotyczy jednej instancji o podanym ID with(0-99999) dotyczy wszystkich instancji obiektu o podanym ID with(all) wiadomo all = -3 //tak jako ciekawostka Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 Zgadza się. Instancja w GM = obiekt. Obiekt w GM = klasa obiektu. Czy jak ktoś woli jego definicja. self = -1 other = -2 all = -3 noone = -4 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
vincenty4 Opublikowano 21 Września 2008 Autor Udostępnij Opublikowano 21 Września 2008 Czyli jaki ma być wkońcu kod na: po kliknięciu w kwadrat PRODUKCJA z plecaka znika mi 6 glin (składniki) i pojawia się dany przedmiot. Chodzi mi wogóe o szkielet kodu, bo konkretnej odpowiedzi mi nie podał (a te co były to nie nadają się do wykorztystania). Bo GM traktuje jako instancje wszystkie obiekty danego rodzaju, a nie tylko 1, więc instance destroy nie da bo mi niszczy wszystkie gliny, które są (with też nic nie daje bo niszczy obiekt który jest najbliżej nieważne czy w plecaku czy nie, ale spróbuje coś z tym pokombinować) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
lenin Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 Takie rzeczy to na zmiennych najlepiej robić... Stwórz zmienną, która by odpowiadała za ilość gliny i na niej przeprowadzaj operacje -_- Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
vincenty4 Opublikowano 21 Września 2008 Autor Udostępnij Opublikowano 21 Września 2008 Znaczy się że mam przypisać liczbę gliny do zmiennej np. global.glina ? Tylko że nie wiem jaki kod użyć żeby czegoś nie porąbać. Mi chodzi poprostu o kod niszcenia 1 obiektu, a nie wszystkich tego rodzaju. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
copoconaco Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 ojej masz zmienna: global.glina - czyli liczbe gliny chcesz ulepic nocnik - wymaga 5 porcji gliny wiec if(global.glina>=5) //sprawdzamy czy jest tyle gliny ile trzeba { global.glina-=5; // zabieramy 5 porcji << cos tam zeby zrobil sie nocniczek - instance_create albo cos >> } else // jesli nie mamy tyle gliny ile trzeba to... { show_message("za malo gliny") // ... wyswietla komunikat } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
vincenty4 Opublikowano 21 Września 2008 Autor Udostępnij Opublikowano 21 Września 2008 @UP: Ale ja wiem o tym wszystkim Chodzi mi tylko o to jaki ma być kod, żeby liczba gliny była przypisana do global.glina albo nawet nie musi być przypisane tylko żeby zrobić jakoś to instance_destroy ale jak mówiłem wtedy niszczy wszystką glinę jaką mam. I własnie o to mi chodzi co zrobić, żeby mi niszczyło tyle ile trzeba, a nie wszystko. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
copoconaco Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 o moj boshe, napisanie : global.glina=5 przypisuje zmiennej globalnej <<glina>> wartosc 5, mozesz ja dodawac, odejmowac, mnozyc i dzielic, wyswietlac tak aby bylo wiadomo ile masz tej paprykowanej gliny... ja ciem bardzom rozumiem ze chcesz to zrobic po swojemu, ale po swojemu nie zawsze znaczy lepiej zwlaszcza w przypadku osob poczatkujacych. plecak robiony na obiektach przynosi wiecej problemow niz pozytku. bo przeciez latwiej jest zanotowac na kartce: "Mam 5 worków gliny", niz taszczyc je bez przerwy ze soba. w obu przypadkach masz 5 workow gliny. a jak bedziesz chcial sie pozbyc jednego wystarczy ze zapiszesz na kartce "zostały mi 4 worki gliny", zmiast brac worek i niesc go do osedlowego smietnika... (kartka - zmienne, worki - obiekty, -tyle tytulem wyjasnien dla niekumkatych) jesli sie dalej upierasz przy swoim przewin kilka postow wstecz i znajdz przykladzik jaki wczoraj wydziergalem specjalnie dla ciebie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harrrry Opublikowano 21 Września 2008 Udostępnij Opublikowano 21 Września 2008 GML var i; i=5; //liczba gliny with(obj_glina) { instance_destroy(); i-=1; if i==0 break; } Może coś takiego? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
vincenty4 Opublikowano 22 Września 2008 Autor Udostępnij Opublikowano 22 Września 2008 o moj boshe, napisanie : global.glina=5 przypisuje zmiennej globalnej <<glina>> wartosc 5, mozesz ja dodawac, odejmowac, mnozyc i dzielic, wyswietlac tak aby bylo wiadomo ile masz tej paprykowanej gliny... Ty mnie żle zrozumiałeś, ja tak własnie robie. Tylko że mam taki problem że glinę mam przedstawioną jako sprite i chce żeby mi zniknęło tyle spritów(czyli też i obiektów) ile jej użyłem, a nie wszystko. To co napisał Harrrry daje to samo co ja napisałem. Aha odnośnie tego przykładu to nie jestem takim Newbie żeby mi to w 50% na klockach robić :) . A poza tym ten kod w przykładzie niszczy obiekt który jest najbliżej tego co kliknąłem bez względu czy jest to glina czy nie. (Czyli mogło by tam być cokolwiek a i tak by się zniszczyło). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
copoconaco Opublikowano 22 Września 2008 Udostępnij Opublikowano 22 Września 2008 o wy niebaczni na modlitwy i blagania, ktorzy sa jako waz, jako bestia szalona niczym huragan... ekhm... czlowieku nie dobijajmnie. najpierw piszesz o obiektach ze znikaja ci wszystkie, teraz piszesz ze przechowujesz gline w zmiennej globalnej, i masz ja przedstawiona jako sprite. mam wrazenie ze niemasz zielonego pojecia o czym piszesz. moja rada - nie zabieraj sie za cos co cie przerasta jesli niepotrafisz nawet wyciagac logicznych wnioskow z rad innych. wez sie ucz na pamiec faq, bo jesli nie potrafisz przeanalizowac jednego prostego przykladu... a wlasnie przyklad: niszczy obiekt który jest najbliżej tego co kliknąłem bez względu czy jest to glina czy nie. -to se wstaw, kurcze pieczone urwal nac pietrucha, funkcje warunkowa w zaleznosci od tego co chcesz usunac. chyba ze nawet tego nie potrafisz. wez sie lepiej za nauke podstaw, potem rob gry. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Harrrry Opublikowano 22 Września 2008 Udostępnij Opublikowano 22 Września 2008 (czyli też i obiektów)Instancji! To ja mam pomysł! (omg jak ja na to wpadłem <_< ) Skrypt na przedstawienie aktualnej ilości gliny jako powtarzający się sprajt: GML var i,xx,yy; xx=view_xview+32; yy=view_yview+32; for(i=0;i<global.glina;i+=1) draw_sprite(sprajt,0,xx+i*16,yy); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
vincenty4 Opublikowano 22 Września 2008 Autor Udostępnij Opublikowano 22 Września 2008 Wez sie lepiej za nauke podstaw, potem rob gry. Nie bulwersuj się tak, nie jestem początkującym, w GM "robie" rok, poprostu chciałem zwykły kawałek kodu. A te obiekty czy też instancje już mi się namieszały po tych wszytkich postach. Naprawdę wiem jak programować dobrze bo już naprawdę dużo zrobiłem jak chcesz to ci coś podeślę na PW. POPROSTU poprzednie posty strasznie mi namieszały bo niektóre wzajemnie się wykluczją (ale już doszedłem co i jak) 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ę