ch3matic Opublikowano 24 Stycznia 2010 Udostępnij Opublikowano 24 Stycznia 2010 Mam taki kodzik, który ma spawnowac bonus w losowym miejscu, ale nie na obiektach solid GML bonusRandom = round(random(100)) if (bonusRandom > -1)//bonusRandom mod 2 = 0) //Calculating chance to spawn powerup { FoundPosition = false; do { //Try random positions untill finding a correct one bx = round(random(16)) +1; //Tiles in X-axis by = round(random(12)) +1; //Tiles in Y-axis if(place_free(bx * 40, by * 40)) { FoundPosition = true; instance_create(bx * 40, by * 40, o_bonus1); //Create it } } until FoundPosition = true; } Kombinuję już pół godziny nad tym, ale i tak spwanuje te bonusy na obiektach solid, x40 bo takie są tile nawet w dokumentacji znalazłem, że tam jest w sumie taki sam kod, no ale nadal nie działa. Nie wiem why. Ma ktoś propozycje? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Platyna Opublikowano 24 Stycznia 2010 Udostępnij Opublikowano 24 Stycznia 2010 A obiekt który wykonuje ten kod ma jakąś maskę lub sprite'a? Bo place_free wykrywa kolizję obiektu w którym jest funkcja wywołana. Bez maski nie wykryje ci nigdy kolizji. A tak poza tym to widać, że ten kod jest bezmyślne skopiowany. Po co ci to? GML bonusRandom = round(random(100)) if (bonusRandom > -1) To zawsze będzie prawdziwe. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ch3matic Opublikowano 24 Stycznia 2010 Autor Udostępnij Opublikowano 24 Stycznia 2010 Serio platyna? Bezmyślnie skopiowany skąd? Pomyśl może, że ustawiłem tak do testów, żebym nie musiał czekać aż się wylosuje. No, ma szukać czy inny obiekt się wbije w ściane, to mam to w tamtym obiekcie mieć ten kod? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Marek.S Opublikowano 24 Stycznia 2010 Udostępnij Opublikowano 24 Stycznia 2010 a ten obiekt ma ustawionego sprita? place_free nie działa jak obiekt jest bez zdefioniownego sprajta. GML bx = round(random(16)) +1; //Tiles in X-axis by = round(random(12)) +1; //Tiles in Y-axis while ( not place_free(bx * 40, by * 40 )) { bx = round(random(16)) +1; //Tiles in X-axis by = round(random(12)) +1; //Tiles in Y-axis } instance_create(bx * 40, by * 40, o_bonus1); //Create it</span> Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ch3matic Opublikowano 24 Stycznia 2010 Autor Udostępnij Opublikowano 24 Stycznia 2010 ma sprajta twój kod też niedziała, ale popróbuje z wrzuceniem go do obiektu, który ma się tworzyć Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Muuuuczek567 Opublikowano 24 Stycznia 2010 Udostępnij Opublikowano 24 Stycznia 2010 GML move_random(40,40) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Makary155 Opublikowano 25 Stycznia 2010 Udostępnij Opublikowano 25 Stycznia 2010 Spróbuj też if not place_meeting Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Slash (Pental) Opublikowano 7 Lutego 2010 Udostępnij Opublikowano 7 Lutego 2010 Kod Marka S. jest dobry - jeżeli widzisz różnicę miedzy pojęciem sprite a maska - powinien działać. ma sprajta twój kod też niedziała, ale popróbuje z wrzuceniem go do obiektu, który ma się tworzyć Zgaduję, że bez edycji :) ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ch3matic Opublikowano 7 Lutego 2010 Autor Udostępnij Opublikowano 7 Lutego 2010 Poradziłem sobie z tym problemem jakieś 10 dni temu panie nekromanto, zamkne lepiej ten temat Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi