Discuss Scratch

Przemek20
Scratcher
100+ posts

Labirynt inna wersja [Pytanie]

Mamy taki labirynt



i jakiegoś duszka. Pytanie jest takie jak zrobić aby ten duszek
losował swoje położenie ale tak jego pozycja x i y była idealnie w środku kratki.



Wiemy że labirynt ma 480/360 pikseli a jedna kratka 40/40 pikseli.
Podpowiedzcie jak to zrobić.

Pozdrawiam Przemek


Last edited by Przemek20 (March 15, 2015 10:11:03)


None
piotr_bala
Scratcher
100+ posts

Labirynt inna wersja [Pytanie]

Mamy dwa problemy:
1. Jak umieścić duszka w środku pola (czerwonym lub zielonym)
2. Jak wybrać tylko pola zielone.

Zamiast umieszczać duszka w pikselach możemy ponumerować pola a następnie przeliczyć numer pola na piksele.
Plansza ma 12x9 pól, tak więc pola możemy numerować od 1 do 12 w poziomie i od 1 do 9 w pionie.
Dowolne pole możemy otrzymać losując 2 liczby - od 1 do 12 i od 1 do 9. Na przykład n=4 i m=5.

Teraz musimy to przeliczyć na piksele. Plansza numerowana jest -230 do 230 w poziomie i -180 do 180 w pionie.
Środek pola najbardziej na lewo to -230+20= -210.
Środek pola najbardziej na dole to -180+20= -160.

Środek kolejnego pole to -210 + (n-1)*40 w poziomie i -160+(m-1)*40 w pionie.

Teraz pozostaje sprawdzić czy pole jest zielone (ok) czy czerwone (losujemy jeszcze raz..)

Przemek20
Scratcher
100+ posts

Labirynt inna wersja [Pytanie]

piotr_bala wrote:

(…)Środek kolejnego pole to -210 + (n-1)*40 w poziomie i -160+(m-1)*40 w pionie.
Czyli ten skrypt ma wyglądać tak?:
ustaw [n] na (losuj od (1) do (9))
ustaw [m] na (losuj od (1) do (12))
idź do x: (((-210) + ((m) - (1))) * (40)) y: (((-160) + ((n) - (1))) * (40))

Aha plansza nie jest numerowana od -230 do 230 tylko -240 do 240.

Last edited by Przemek20 (March 15, 2015 18:33:50)


None
Opisek
Scratcher
1000+ posts

Labirynt inna wersja [Pytanie]

@up Nawet dobrze kombinujesz, ale ja to u siebie zrobiłem tak:
idź do x: ((([podłoga v] z ((losuj od (-240) do (240)) / (40))) * (40)) + (5)) y: (*::control)
(*::control)
(([podłoga v] z ((losuj od (-180) do (180)) / (40))) * (40)
Jeden blok zawsze lepszy od trzech Ten blok będzie u cb pasował, ale to grozi umieszczeniem w podziękowaniach :p

To +5 musisz sobie sam ustalić, bo każdy duszek ma w innym miejscu środek i czasem środek jest np. na krawędzi kratki. Po to jest właśnie +5, żeby duszek miał środek na środku, a nie na krawędzi

Tutaj masz działanie w praktyce (nietoperz losuje kratkę)

P.S.
Ta * po to, bo się blok nie zmieścił.


Last edited by Opisek (March 15, 2015 21:38:33)

Przemek20
Scratcher
100+ posts

Labirynt inna wersja [Pytanie]

Dzięki za gotowy skrypt U mnie w duszku musiałem +21 żeby w środku idealnie był .

None
izis2098
New to Scratch
1 post

Labirynt inna wersja [Pytanie]

Mam problem ze zrobieniem labiryntu.gra polega na tym że stworek którego prowadzimy ma przejść labirynt i nie dać się dodknąć chodzącym po labiryncie dinozaurom. Niewiem jak zrobić żeby jak stworek dotrze do mety to żeby dinozaury poszły do wyznaczonego miejsca .żeby chodziły dinozaury po labiryncie użyłam klocków:
kiedy kliknięto zieloną flagę
zawsze
leć przez () s do x: (0) y: (0)
leć przez () s do x: (0) y: (0)
leć przez () s do x: (0) y: (0)
leć przez () s do x: (0) y: (0)
end
6cDoNicpon
New to Scratch
1 post

Labirynt inna wersja [Pytanie]

r5dgsgfr3dgwfcaxz
kuba5509
Scratcher
100+ posts

Labirynt inna wersja [Pytanie]

6cDoNicpon wrote:

r5dgsgfr3dgwfcaxz

Last edited by kuba5509 (May 1, 2023 04:56:48)



Support the suggestion HERE by adding this button to your signature

Powered by DjangoBB