Ice Cube Opublikowano 9 Lutego 2019 Udostępnij Opublikowano 9 Lutego 2019 Witam mam problem potrzebuje losowo stworzyć w budynku 10 sztuk zlota ale jezeli zloto mialo by byc stworzone w miejscu gdzie jest juz jakis obiekt,ma ono byc stworzone w innym miejscu oto kod: repeat(zloto){ // ilosc zlota np.10 losx=irandom_range(1,1000) losy=irandom_range(1,800) if place_free(2030+losx,70+losy) instance_create(2030+losx,70+losy,obj_Budpln)/ } problem w tym ze kod nie stworzy 10 sztuk zlota,jezeli napotka na jakis obiekt przez co zlota moze byc mniej Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 9 Lutego 2019 Udostępnij Opublikowano 9 Lutego 2019 Mniej złota tworzy Ci się dlatego, że zastosowałeś if, czyli w skrócie daje wynik jeśli wolne miejsce = twórz, jeśli nie = nie twórz i tak, masz zapytanie raz na jeden repeat. Użyj zamiast if instrukcje do... until do { } until(place_free()) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Ice Cube Opublikowano 9 Lutego 2019 Autor Udostępnij Opublikowano 9 Lutego 2019 ale ,że tak to ma wyglądać ; ? repeat(zloto) // ilosc zlota np.10 do { losx=irandom_range(1,1000) losy=irandom_range(1,800) instance_create(2030+losx,70+losy,obj_Budpln)/ } until(place_free(2030+losx,70+losy)) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
SimianVirus7 Opublikowano 9 Lutego 2019 Udostępnij Opublikowano 9 Lutego 2019 tak, tylko instance_create wpisz na koniec całego kodu, za instrukcją until, bo będzie tworzyć tym razem za dużo obj_Budpln z racji tego, że nawet jeśli napotka solid to i tak go tam utworzy Za pomocą instrukcji until masz ustalić miejsce tworzenia przedmiotu, który nie będzie kolidował z solid Musisz jeszcze cały ten kod zrobić w klamrach dla repeat repeat(10) { //cały kod } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 10 Lutego 2019 Administratorzy Udostępnij Opublikowano 10 Lutego 2019 stwórz wszystkie w jednym miejscu i daj move_outside_solid z kierunkiem dla każdego równym 360/zlota/*i ? Chociaż wtedy również dobrze można użyć lengthdirow losowej odległości w jakimś zakresie. 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ę