Ice Cube Opublikowano 19 Stycznia 2018 Udostępnij Opublikowano 19 Stycznia 2018 Czesc mam w grze wiele obiektów,ale najwiecej dzew i chciałbym tylko je deaaktywowac,jezeli odejde na jakas odleglosc,a zeby sie aktywowaly gdy bede w poblizu wiem ,że jest takie cos: instance_activate_region(x-100,y-100,x+100,y+100,true,true) i to bedzie aktywowalo wokol mnie WSZYSTKO --ale jak zrobic by tylko instancie z obj_dzewo sie aktywowaly? --i jak zrobic by po odejsciu sie deaktywowały? wiem ze jest: instance_deactivate_region(x-100,y-100,x+100,y+100,true) pozdro Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy Rozwiązanie gnysek Opublikowano 19 Stycznia 2018 Administratorzy Rozwiązanie Udostępnij Opublikowano 19 Stycznia 2018 instance_deactivate_object(obj_drzewo); instance_activate_region(x-100,y-100,x+100,y+100,true,true) ; jedno po drugim. obiekty są deaktywowane na koniec eventu step, więc się nie zdążą deaktywować w tej sytuacji Jeśli chcesz deaktywować wiecej obiektów na raz, stwórz obj_rodzic i ustawiaj każdemu z obiektów jakie chcesz deaktywować Parent=>obj_rodzic (w kodzie albo klikając na oknie właściwości obiektów w pole "Parent"). Zamień tylko na instance_deactivate_object(obj_rodzic); Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 19 Stycznia 2018 Autor Udostępnij Opublikowano 19 Stycznia 2018 no super dziala ,ale cos dziwnie mi aktywuje i deaktywuje te obiekty tzn. czy dobrze wpisuje te wartosci x i y? abym byl w samym srodku kwadratu aktywacji,a poza kwadratem jest deaktywacja instance_deactivate_object(obj_dzewoR); instance_activate_region(x-100,y-100,x+100,y+100,true) ; i jeszcze drugie pytanie: dzewa ktore narysowalem w roomie dzialaja,ale.. jezeli naciskam klawisz n to losowo instance_create(random(1000),random(1000),obj_dzewoR) i tych losowych dzew ktore sobie generuje nie widac wogole nigdzie nawet jak przejde caly room i naprodukuje tych dzew kilkaset czy je idzie aktywowac jakos?,bo jak chodze po roomie to sie nie aktywuja.. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PatrykPlayingPOLSKA Opublikowano 19 Stycznia 2018 Udostępnij Opublikowano 19 Stycznia 2018 Masz trochę dziwnie podstawione atrybuty w tej funkcji https://docs.yoyogames.com/source/dadiospice/002_reference/objects and instances/instances/deactivating instances/instance_activate_region.html Cytuj dzewa ktore narysowalem w roomie dzialaja,ale.. Tu taka mała poprawka,te drzewa zostały stworzone a nie narysowane,byłby narysowane gdybyś użył np draw_sprite. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 20 Stycznia 2018 Autor Udostępnij Opublikowano 20 Stycznia 2018 moj player jest w niebieskim kwadracie ,w tym kwadracie obiekty sie aktywuja ,poza nim jest deaktywacja wiec instance_deactivate_object(obj_dzewoR); instance_activate_region(x-5,y-5,x+5,y+5,true) ; chciałbym aby to dzialalo jak na rysunku,ale tak nie jest .. niemam pomysłu jak to rozgryzc Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 20 Stycznia 2018 Autor Udostępnij Opublikowano 20 Stycznia 2018 12 godzin temu, PatrykPlayingPOLSKA napisał: Masz trochę dziwnie podstawione atrybuty w tej funkcji https://docs.yoyogames.com/source/dadiospice/002_reference/objects and instances/instances/deactivating instances/instance_activate_region.html Tu taka mała poprawka,te drzewa zostały stworzone a nie narysowane,byłby narysowane gdybyś użył np draw_sprite. poprawka przyjeta no ale wlasnie jak poprawic te atrybuty? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PatrykPlayingPOLSKA Opublikowano 20 Stycznia 2018 Udostępnij Opublikowano 20 Stycznia 2018 instance_activate_region(x-10,y-10,x+5,y+5,true) ; Dlaczego tak ? Ponieważ z (x-5,y-5,x+5,y+5,true) wychodziło 0 i aktywowało gdzieś w innym miejscu,a tak z (x-10,y-10,x+5,y+5,true) wychodzi-5,czyli twój zasięg. Jeżeli to nie zadziała to się poddaję. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 20 Stycznia 2018 Autor Udostępnij Opublikowano 20 Stycznia 2018 24 minuty temu, PatrykPlayingPOLSKA napisał: instance_activate_region(x-10,y-10,x+5,y+5,true) ; Dlaczego tak ? Ponieważ z (x-5,y-5,x+5,y+5,true) wychodziło 0 i aktywowało gdzieś w innym miejscu,a tak z (x-10,y-10,x+5,y+5,true) wychodzi-5,czyli twój zasięg. Jeżeli to nie zadziała to się poddaję. no niestety dalej nie dziala jak powinno Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PatrykPlayingPOLSKA Opublikowano 20 Stycznia 2018 Udostępnij Opublikowano 20 Stycznia 2018 Wyślij najlepiej lub projekt,bo działamy na ślepo. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 20 Stycznia 2018 Autor Udostępnij Opublikowano 20 Stycznia 2018 dodam jeszcze ,że gra jest 3d i jezeli w DRAW playera napisze: d3d_draw_floor(x-100,y-100,2,x+100,y+100,2,background_get_texture(bck_kwadrat),1,1) to dookola playera widze ten kwadrat,ale instancje pojawiaja sie i znikaja dobrze tylko powiedzmy jak patrze z jednego rogu kwadratu,reszta znika z bardzo daleka Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 21 Stycznia 2018 Autor Udostępnij Opublikowano 21 Stycznia 2018 próbowalem alternatywnie czegos takiego: if distance_to_object(obj_dzewo)<100 instance_activate_object(obj_dzewo) else instance_deactivate_object(obj_dzewo) ale to działa na wszystkie instancje,a nie na pojedyncze Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 21 Stycznia 2018 Autor Udostępnij Opublikowano 21 Stycznia 2018 Kolejna rzecz ktora próbowałem to: var aaa; aaa=collision_circle(x, y, 120, obj_dzewo, false, true) if collision_circle(x, y, 120, obj_dzewo, false, true) { instance_deactivate_object(aaa); } else instance_activate_object(aaa);; dziala jezeli jest tylko jedno dzewo, ale jezeli jest ich kilka w danym miejscu to instancje migotaja tzn.szybko aktywuja sie i deaktywuja HELP! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
V Fighter Opublikowano 29 Stycznia 2018 Udostępnij Opublikowano 29 Stycznia 2018 Przede wszystkim (bo nikt Cię o dziwo nie poprawił) drzewo piszemy przez "rz". Rozumiem, że raz, czy dwa można "zjeść R", ale teraz widzę, że Ty bez przerwy tak piszesz xd, ale tak tylko mówię. Teraz odnośnie Twojego problemu. Ja osobiście nie używam aktywacji i dezaktywacji obiektów z tego względu, że uznaję to za zbędne funkcje i ciężko to zrozumieć (przynajmniej mi). Jeśli planujesz zrobić jakąś dużą, albo nieskończoną mapę (typu Minecraft), polecam zacząć projekt od nowa i zamiast tych funkcji, stwórz na przykład generator mapy chunk'ami. W ten sposób jeśli wygenerowane chunk'i są na przykład zbyt daleko (wykorzystujesz point_distance), to chunk wraz z jego obiektami jest zapisywany w pliku i zwyczajnie usuwany, dzięki cxemu nie zalega w pamięci programu, a jest tylko wczytywany z pliku, kiedy ponownie do niego wrócisz. Jeśli mam rozwinąć mój sposób, to daj jakoś znać ;). Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 29 Stycznia 2018 Udostępnij Opublikowano 29 Stycznia 2018 collision_circle() zwraca tylko jedno ID obiektu. Pierwsze jakie się trafi. To co ty chcesz zrobić to iterować przez wszystkie obiekty i sprawdzać czy spełniają warunek czyli czy są dostatecznie blisko. instance_activate_all() with(obj_dzewo) { if(point_distance(x,y,other.x,other.y) < 120) { instance_deactivate_object(id) } } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 31 Stycznia 2018 Autor Udostępnij Opublikowano 31 Stycznia 2018 Panowie po wielu trudach Dnia 19.01.2018 o 18:15, gnysek napisał: instance_deactivate_object(obj_drzewo); instance_activate_region(x-100,y-100,x+100,y+100,true,true) ; jedno po drugim. obiekty są deaktywowane na koniec eventu step, więc się nie zdążą deaktywować w tej sytuacji Jeśli chcesz deaktywować wiecej obiektów na raz, stwórz obj_rodzic i ustawiaj każdemu z obiektów jakie chcesz deaktywować Parent=>obj_rodzic (w kodzie albo klikając na oknie właściwości obiektów w pole "Parent"). Zamień tylko na instance_deactivate_object(obj_rodzic); instance_deactivate_object(obj_drzewo); instance_activate_region(x-32,y-32,64,64,true) ; takie cos działa! pozdro i dzieki za pomoc Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 31 Stycznia 2018 Autor Udostępnij Opublikowano 31 Stycznia 2018 Dnia 29.01.2018 o 16:10, V Fighter napisał: Przede wszystkim (bo nikt Cię o dziwo nie poprawił) drzewo piszemy przez "rz". Rozumiem, że raz, czy dwa można "zjeść R", ale teraz widzę, że Ty bez przerwy tak piszesz xd, ale tak tylko mówię. Teraz odnośnie Twojego problemu. Ja osobiście nie używam aktywacji i dezaktywacji obiektów z tego względu, że uznaję to za zbędne funkcje i ciężko to zrozumieć (przynajmniej mi). Jeśli planujesz zrobić jakąś dużą, albo nieskończoną mapę (typu Minecraft), polecam zacząć projekt od nowa i zamiast tych funkcji, stwórz na przykład generator mapy chunk'ami. W ten sposób jeśli wygenerowane chunk'i są na przykład zbyt daleko (wykorzystujesz point_distance), to chunk wraz z jego obiektami jest zapisywany w pliku i zwyczajnie usuwany, dzięki cxemu nie zalega w pamięci programu, a jest tylko wczytywany z pliku, kiedy ponownie do niego wrócisz. Jeśli mam rozwinąć mój sposób, to daj jakoś znać ;). Polonista zawsze ze mnie był kiepski,a moze nawet jestem nieswiadomym dyslektykiem ? 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ę