Skocz do zawartości
  • 0

Pomoc z hollow sphere


xSebixx1

Pytanie

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
16 godzin temu, xSebixx1 napisał:

Chciałem, stworzyć kule bez srodka, ale jak używam loop blocks around, to zazwyczaj nie jest rowna wsensie ze po 1 stronie jest inna i po 2 inna ma któs na to jakis pomysl?

Trzeba mieć na uwadze to, że wyrażenie `blocks around %location% in radius %number%` bierze pod uwagę wszystkie bloki, których środki są odległe o nie więcej niż zadany promień. W konsekwencji, jeśli zadana lokacja do zapętlania bloków nie leży w środku bloku, powstała sfera (czyli, jak to ująłeś, kula pusta w środku) nie będzie symetryczna. Jednym z możliwych rozwiązań jest wykorzystanie `location of block at %location%` jako środka sfery, którą chcesz utworzyć. Wtedy masz gwarancję symetrii.

Inny sposób stworzenia sfery to wykorzystanie promienia wodzącego, który wskazuje miejsce utworzenia bloku. Tworzysz wektor o długości promienia sfery, którego yaw (obrót lewo/prawo) i pitch (obrót góra/dół) są modyfikowane z pewnym krokiem, dostosowanym do promienia sfery (im większy promień, tym mniejszy musi być krok, ponieważ powstaną dziury w powierzchni). Przykład implementacji takiego rozwiązania podałem poniżej.

set {_r} to 5
set {_centerLoc} to location(100, 100, 100, "world")
set {_rotationStep} to 10

set {_v} to vector(0, -{_r}, 0)
loop ceil(180 / {_rotationStep}) times:
	loop ceil(360 / {_rotationStep}) times:
		set block at {_centerLoc} + {_v} to obsidian
		add {_rotationStep} to yaw of {_v}
	remove {_rotationStep} from pitch of {_v}

Nie jest to optymalne rozwiązanie, ponieważ ustawia ono te same bloki wielokrotnie, szczególnie bliżej "spodu" i "szczytu" sfery. Dobrze napisany kod powinien brać to pod uwagę i modyfikować `yaw` ze zmiennym krokiem. Niemniej jednak, jest to i tak lepsze rozwiązanie niż zapętlanie wszystkich bloków, włącznie z tymi wewnątrz sfery.
Mogłem także użyć wektorów sferycznych, ale uznałem składnię zwykłych wektorów za czytelniejszą.

Pozdrawiam.

Edytowane przez Kormic
Zapomniałem, że pitch = 90 oznacza spoglądanie prosto w dół, dlatego należy zmniejszać pitch, aby wektor stopniowo się "podnosił".
Odnośnik do komentarza
https://skript.pl/temat/59131-pomoc-z-hollow-sphere/#findComment-347782
Udostępnij na innych stronach

  • 0
17 godzin temu, xSebixx1 napisał:

Chciałem, stworzyć kule bez srodka, ale jak używam loop blocks around, to zazwyczaj nie jest rowna wsensie ze po 1 stronie jest inna i po 2 inna ma któs na to jakis pomysl?

ale używasz around w nawiązaniu od czego? bo twoja lokacja jezeli jest lekko krzywa to i kula bedzie krzywa

dlatego najlepiej wez sobie around (location of block at player) bo blok krzywy nie bedzie

Edytowane przez Fendi
Odnośnik do komentarza
https://skript.pl/temat/59131-pomoc-z-hollow-sphere/#findComment-347783
Udostępnij na innych stronach

  • 0
3 godziny temu, Fendi napisał:

ale używasz around w nawiązaniu od czego? bo twoja lokacja jezeli jest lekko krzywa to i kula bedzie krzywa

dlatego najlepiej wez sobie around (location of block at player) bo blok krzywy nie bedzie

Uzywałem around loc of player, ale i tak zmienilem na przykład który dał kormic bo spełnia on moje oczekiwania

Odnośnik do komentarza
https://skript.pl/temat/59131-pomoc-z-hollow-sphere/#findComment-347784
Udostępnij na innych stronach

  • 0
3 godziny temu, xSebixx1 napisał:

Uzywałem around loc of player, ale i tak zmienilem na przykład który dał kormic bo spełnia on moje oczekiwania

może i działa, ale zamiast loc of player uzycie location of block at player jest duzo prostsze niz dodawanie dodatkowej matematyki

chyba ze nie działa, to whatever

 

Ale to raczej wina tego

Bo loc of player moze dac kordy: 10.340, 30, 15.670

A loc of block at player da kordy: 10.5, 30. 15.5

Co będzie równe

 

Odnośnik do komentarza
https://skript.pl/temat/59131-pomoc-z-hollow-sphere/#findComment-347785
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...