Discuss Scratch

ScratcherPolska
Scratcher
8 posts

Płynne poruszanie się duszka. Tutorial

Witam w moim pierwszym tutorialu! Dziś wam przedstawię, jak zrobić skrypt płynnego ruchu duszka.
Pierwszym klockiem który musimy dodać będzie oczywiście zielona flaga (menu Zdarzenia)
kiedy kliknięto zieloną flagę
Potem musimy dołączyć do zielonej flagi blok pętli “zawsze” (menu Kontrola)
kiedy kliknięto zieloną flagę
zawsze

end
Po dołączeniu klocka “zawsze” musimy go wypełnić. W tym celu dodajemy cztery bloki “jeżeli” (menu Kontrola)
kiedy kliknięto zieloną flagę
zawsze
jeżeli <> to

end
jeżeli <> to

end
jeżeli <> to

end
jeżeli <> to

end

end
Po dodaniu tych czterech bloków musimy je również wypełnić. Zaczniemy od ostro zakończonego pola obok napisów. W tym miejscu wstawimy warunek
 
<klawisz [Tu wybieramy odpowiedni klawisz v] naciśnięty?>
Wybierzmy więc ten bloczek (znaleźć go można w menu Czujniki), zduplikujmy cztery razy i włóżmy do pól. Przyciski to będą kolejno strzałka w górę, dół, prawo, lewo.
kiedy kliknięto zieloną flagę
zawsze
jeżeli <klawisz [strzałka w dół v] naciśnięty?> to

end
jeżeli <klawisz [strzałka w lewo v] naciśnięty?> to

end
jeżeli <klawisz [strzałka w prawo v] naciśnięty?> to

end
jeżeli <klawisz [strzałka w górę v] naciśnięty?> to

end

end
No i na koniec skryptu dodajemy bloki ruchu (menu Ruch). Pamiętajmy, że x to kierunki prawo-lewo, y natomiast to kierunki góra-dół. Więc musimy wypełnić miejsca odpowiednimi blokami (z odpowiednimi wartościami). Więc, co wyląduje w miejscu strzałki w dół? Przypomnij sobie, że kierunki góra-dół to litera y, czyli użyjemy na pewno bloczka
zmień y o ()
Teraz jaką wartość w nim zapiszemy? Przetestuj tą jedną rzecz. W bloku “zmień y” domyślną wartością jest 10. Kliknij na ten blok w edytorze. Duszek ruszył się w górę, prawda? W takim razie ruch o 10 w dół będzie wartością przeciwną - wybieramy -10.
kiedy kliknięto zieloną flagę
zawsze
jeżeli <klawisz [strzałka w dół v] naciśnięty?> to
zmień y o (-10)
end
jeżeli <klawisz [strzałka w lewo v] naciśnięty?> to

end
jeżeli <klawisz [strzałka w prawo v] naciśnięty?> to

end
jeżeli <klawisz [strzałka w górę v] naciśnięty?> to

end

end
I na takiej samej zasadzie wypełniamy resztę pól. Skoro po kliknięciu “zmień y o 10” duszek ruszył się w górę, do strzałki w górę użyjemy po prostu wartości 10. Tak samo z kierunkami lewo-prawo. Kliknij na blok “zmień x o 10”. Co się dzieje? Duszek ruszył się w prawo, więc wartość w lewo będzie wynosiła -10.
kiedy kliknięto zieloną flagę
zawsze
jeżeli <klawisz [strzałka w dół v] naciśnięty?> to
zmień y o (-10)
end
jeżeli <klawisz [strzałka w lewo v] naciśnięty?> to
zmień x o (-10)
end
jeżeli <klawisz [strzałka w prawo v] naciśnięty?> to
zmień x o (10)
end
jeżeli <klawisz [strzałka w górę v] naciśnięty?> to
zmień y o (10)
end

end

Jestem bardzo wdzięczny że przeczytałeś mój tutorial. Jeśli ci się spodobał napisz do mnie o tym, zawsze jest to wena do dalszego tworzenia tutoriali!
Zobacz efekt tego tutorialu
korkokos2
Scratcher
100+ posts

Płynne poruszanie się duszka. Tutorial

To umie prawie każdy new scratcher, jak chcesz mieć bardziej interesujący tutorial to zrób o poruszaniu się duszka względem położenia kątowego
DYOMAST
Scratcher
3 posts

Płynne poruszanie się duszka. Tutorial

korkokos2 wrote:

To umie prawie każdy new scratcher, jak chcesz mieć bardziej interesujący tutorial to zrób o poruszaniu się duszka względem położenia kątowego
Dokładnie tak. Jeżeli chcesz mieć bardziej interesujący tutorial to zrób taki że duszek najpierw idzie wolno, potem szybko a na końcu stopniowo hamuje.

PS. Jak coś identyczny skrypt był moim pierwszym skryptem w scratchu i jakoś nie potrzebowałem tutoriala
AndrzejL1
Scratcher
100+ posts

Płynne poruszanie się duszka. Tutorial

Mam wrażenie, że ta pętla zawsze ciągle się będzie wykonywać i wykonywać, nawet jak nie będę chciał ruszać duszkiem to i tak ciągle będzie sprawdzać i sprawdzać, aż się procesor zgrzeje.
A do tego jak ktoś wciśnie 2 strzałki naraz żeby iść np. w prawo skos w górę, to niekoniecznie dobrze będzie się ruszać, bo pętla najpierw musi kolejne “Jeżeli” sprawdzić.
A jakbyś tak spróbował tak?
kiedy klawisz [ strzałka w lewo] naciśnięty
ustaw kierunek na (-90)
przesuń o (10) kroków
zatrzymaj [ten skrypt]

To takie bardzo okrojone poruszanie. Do tego warto pomyśleć co się stanie jak dojdzie do krawędzi, czy się ma obracać czy nie i takie tam różne niuanse.
Tu np. masz mój pomysł na poruszanie czołgiem (z prędkością, automatycznym hamowaniem i dźwiękiem).
https://scratch-mit-edu.ezproxyberklee.flo.org/projects/484435221/
Nie twierdzę, że najlepszy sposób, ale może warto się zapoznać zanim zaczniesz pisać tutoriale.

Last edited by AndrzejL1 (June 28, 2024 17:26:35)

Powered by DjangoBB