Discuss Scratch
- Erixo
- Scratcher
100+ posts
Scrollowana gra?
UWAGA! ZAKTUALIZOWAŁEM DELIKATNIE PORADNIK
OD TERAZ DOŁĄCZYŁEM TAKŻE PRZYKŁAD
kliknij w link wyżej by go zobaczyć ^^^^^^^^^
Pewnie masz dylemat, jak zrobić scrollowaną grę. Wbrew pozorom jest to BARDZO łatwe. Oto co potrzebujesz w skryptach gracza:
kiedy kliknięto zieloną flagęOkej. Gracz już gotowy. Teraz czas na obiekty statyczne, które nie będą przemieszczane same z siebie.
ustaw [X v] na [0]//Resetowanie pozycji gracza w osi X
ustaw [Y v] na [0]//Resetowanie pozycji gracza w osi Y
kiedy kliknięto zieloną flagę
idź do x: (0) y: (0)
zawsze //Proste pętle ruchu
jeżeli <klawisz [ w v] naciśnięty?> to
zmień [Y v] o (5)
end
jeżeli <klawisz [ s v] naciśnięty?> to
zmień [Y v] o (-5)
end
jeżeli <klawisz [ a v] naciśnięty?> to
zmień [X v] o (5)
end
jeżeli <klawisz [ d v] naciśnięty?> to
zmień [X v] o (-5)
end
end
//w ich skryptach napisz po prostu:Później dodam elementy dynamiczne, jak będę miał czas
kiedy kliknięto zieloną flagę
zawsze
Idź do x:((X) + (liczba w osi x)) y:((Y) + (liczba w osi y)) //Obiekt będzie podążał za wskazaną pozycją
End
//Liczba w osi x - Pozycja obiektu w osi X - Pionowo
//Liczba w osi y - Pozycja obiektu w osi Y - Poziomo
PO EDYCJI 2 LATA PÓŹNIEJ
Dokładnie nie wytłumaczę jak możesz zrobić obiekt dynamiczny ale postaram się to streścić:
(myX) //Stwórz zmienną prywatną (jest to dostępne do wyboru podczas jej tworzenia)Zmodyfikuj skrypt który pokazałem chwilę wcześniej na ten:
(myY) //Stwórz zmienną prywatną (jest to dostępne do wyboru podczas jej tworzenia)
kiedy zaczynam jako klonZmienna prywatna to taka zmienna która niezależnie od tego w którym klonie jej używasz będzie miała inną wartość. Jeśli zmienisz np. myX na 1, tylko w klonie 1, to reszta klonów dalej będzie miała wartość np. 0 (W przypadku zwykłych zmiennych, tak zwanych globalnych, reszta klonów też widziałaby zmienną myX jako 1)
zawsze
Idź do x:((X) + (myX)) y:((Y) + (myY)) //Obiekt będzie podążał za wskazaną pozycją
End
Teraz, jedyne co musisz robić to modyfikować te dwie zmienne w klonach (jeśli używasz klonów i chcesz nimi poruszać, np. lecąca ognista kula), np. w taki sposób:
kiedy zaczynam jako klon
zawsze
powtórz (5) razy
zmień [myX v] o (5)
end
powtórz (5) razy
zmień [myX v] o (-5)
end
end
Jeśli poprawnie stworzyłeś zmienne myX i myY jako zmienne prywatne to niezależnie od ruchu bohatera, obiekt będzie poruszał się 25 pikseli w prawo i 25 pikseli w lewo.
Zapewne nie dopiszę tu już za wiele
Last edited by Erixo (April 20, 2020 13:09:19)
- AANNTTOONNII
- Scratcher
1000+ posts
Scrollowana gra?
Idź do x: jest czerwone. Proszę napraw to.
Dodaj opisy. bo niekażdy początkujący zrozumie.
Dodaj opisy. bo niekażdy początkujący zrozumie.
- Erixo
- Scratcher
100+ posts
Scrollowana gra?
Ok no problem Idź do x: jest czerwone. Proszę napraw to.
Dodaj opisy. bo niekażdy początkujący zrozumie.
tylko nie pamiętam jak zmienić kolor bloków ;/
Last edited by Erixo (May 16, 2018 13:38:11)
- Erixo
- Scratcher
100+ posts
Scrollowana gra?
Oczywiście. Ale jak ktoś już trochę zrozumie to może sam to zamienić, lub jak chce to może też zrobić -400 załóżmy. W ostatnim skrypcie można zastąpić “+” minusem
- MentolMen
- Scratcher
1000+ posts
Scrollowana gra?
Nie musisz zmieniać koloru, scratch sam to robi kiedy blok jest prawidłowo skonstruowany. Twój jest źle zrobiony, dlatego czerwony. No wiem, ale można by napomknąć, że można zmieniać kierunek po prostu zmieniając znaku w “czerwonym” skrypcie albo w tym co zmienia x i y
- AANNTTOONNII
- Scratcher
1000+ posts
Scrollowana gra?
Tak nie powinno być:
(X + (0))tylko
((X) + (0))Wyjaśnij jeszcze czym jest liczba w osi x i liczba w osi y
- Erixo
- Scratcher
100+ posts
Scrollowana gra?
Scratch nie zmienia bloków To plugin scratchblocks Nie musisz zmieniać koloru, scratch sam to robi kiedy blok jest prawidłowo skonstruowany. Twój jest źle zrobiony, dlatego czerwony. No wiem, ale można by napomknąć, że można zmieniać kierunek po prostu zmieniając znaku w “czerwonym” skrypcie albo w tym co zmienia x i y
No ok. I tak nikt tej dyskusji nie przeczyta Tak nie powinno być:(X + (0))tylko((X) + (0))Wyjaśnij jeszcze czym jest liczba w osi x i liczba w osi y
- AANNTTOONNII
- Scratcher
1000+ posts
Scrollowana gra?
Erixo musisz zrobić X w nawiasie (X), anie X bo wtedy wychodzi tak brzydko
- paczekwmasle
- Scratcher
500+ posts
Scrollowana gra?
nieprawda-ja czytam-bardzo polecam wszystkim scratchersom, dzięki niej nauczyłem się scrollować No ok. I tak nikt tej dyskusji nie przeczyta
podpisano @paczekwmasle
- paczekwmasle
- Scratcher
500+ posts
Scrollowana gra?
przy wykorzystywaniu tej metody w swojej grze natrafiłem na problem - duszek będący tłem po puszczeniu kursora nie zatrzymywał się, tylko ,,biegł'' dalej. Być może jest to w niektórych przypadkach efekt zamierzony, ale w mojej grze był błędem. Żeby mu zapobiec trzeba dodać jedną drobną modyfikację do skryptu duszku będącym tłem, a mianowicie:
kiedy kliknięto zieloną flagę
zawsze
Idź do x:((X) + (liczba w osi x)) y:((Y) + (liczba w osi y)
ustaw [X] na [0]
ustaw [Y] na [0]
Last edited by paczekwmasle (April 26, 2019 09:01:28)
podpisano @paczekwmasle
- Erixo
- Scratcher
100+ posts
Scrollowana gra?
Jeżeli zamierzasz używać tła, które się przesuwa, to jesteś na dobrej drodze, ale: przy wykorzystywaniu tej metody w swojej grze natrafiłem na problem - duszek będący tłem po puszczeniu kursora nie zatrzymywał się, tylko ,,biegł'' dalej. Być może jest to w niektórych przypadkach efekt zamierzony, ale w mojej grze był błędem. Żeby mu zapobiec trzeba dodać jedną drobną modyfikację do skryptu duszku będącym tłem, a mianowicie:kiedy kliknięto zieloną flagę
zawsze
Idź do x:((X) + (liczba w osi x)) y:((Y) + (liczba w osi y)
ustaw [X] na [0]
ustaw [Y] na [0]
kiedy kliknięto zieloną flagęewentualnie po prostu zmień tło sceny
zawsze
idź do x: (((X) + (liczba w osi x)) / (3)) y: (((Y) + (liczba w osi y)) / (3))
...//nie możesz tutaj zerować wartości X i Y gdyż otoczenie gracza będzię się za każdym razem przemieszczało do koordynatów 0, 0
end
- testertostera
- Scratcher
100+ posts
Scrollowana gra?
Jeżeli zamierzasz używać tła, które się przesuwa, to jesteś na dobrej drodze, ale: przy wykorzystywaniu tej metody w swojej grze natrafiłem na problem - duszek będący tłem po puszczeniu kursora nie zatrzymywał się, tylko ,,biegł'' dalej. Być może jest to w niektórych przypadkach efekt zamierzony, ale w mojej grze był błędem. Żeby mu zapobiec trzeba dodać jedną drobną modyfikację do skryptu duszku będącym tłem, a mianowicie:kiedy kliknięto zieloną flagę
zawsze
Idź do x:((X) + (liczba w osi x)) y:((Y) + (liczba w osi y)
ustaw [X] na [0]
ustaw [Y] na [0]kiedy kliknięto zieloną flagęewentualnie po prostu zmień tło sceny
zawsze
idź do x: (((X) + (liczba w osi x)) / (3)) y: (((Y) + (liczba w osi y)) / (3))
...//nie możesz tutaj zerować wartości X i Y gdyż otoczenie gracza będzię się za każdym razem przemieszczało do koordynatów 0, 0
end
A nie można tam dodać warunku? Zawsze -> jeżeli kursor w prawo kliknięty lub kursor w lewo kliknięty… -> idź do
<<to scratch> or <not <to scratch>>>https://scratch.mit.edu/studios/6049248/
https://scratch.mit.edu/studios/14690392/
- Erixo
- Scratcher
100+ posts
Scrollowana gra?
A nie można tam dodać warunku? Zawsze -> jeżeli kursor w prawo kliknięty lub kursor w lewo kliknięty… -> idź doDużo warunków = duże opóźnienia
ten skrypt jest lepszy - przy zatrzymywaniu się na krawędziach zachowuje skalę odległości
- paczekwmasle
- Scratcher
500+ posts
Scrollowana gra?
looknij sobie w moim projekcie: tam działa
https://scratch.mit.edu/projects/304749402/
Edit: projekt nie udostępniony
https://scratch.mit.edu/projects/304749402/
Edit: projekt nie udostępniony
Last edited by paczekwmasle (May 11, 2019 12:48:54)
podpisano @paczekwmasle
- testertostera
- Scratcher
100+ posts
Scrollowana gra?
looknij sobie w moim projekcie: tam działa
https://scratch.mit.edu/projects/304749402/
Oki, jak działa, to nie ma co kombinować
<<to scratch> or <not <to scratch>>>https://scratch.mit.edu/studios/6049248/
https://scratch.mit.edu/studios/14690392/
- paczekwmasletest
- Scratcher
16 posts
Scrollowana gra?
A czy ten sposób nie jest lepszy? (prostszy, a działa tak samo dobrze):
dać po prostu do duszka będącego tłem taki skrypt:
dać po prostu do duszka będącego tłem taki skrypt:
kiedy kliknięto zieloną flagęw tym projekcie działa znakomicie: https://scratch.mit.edu/projects/313270769/
idź do x: (0) y: (0)
zawsze
jeżeli <klawisz [a] naciśnięty?> to
zmień x o (10)
end
jeżeli <klawisz [d] naciśnięty?> to
zmień x o (-10)
end
jeżeli <klawisz [w] naciśnięty?> to
zmień y o (-10)
end
jeżeli <klawisz [a] naciśnięty?> to
zmień y o (10)
end
end