Discuss Scratch

trebuh
New to Scratch
2 posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie
piotr_bala
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

Najprościej się przesunąć
repeat (5)
move (10) steps
end]
Można i tak:
go to x: () y: ()
Jeżeli w czasie ruchu ma podskoczyć do góry, to trzeba trochę bardziej pokombinować…
piotr_bala
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

Przykład skoku:

repeat (5)
move (10) steps
change y by (3)
end
repeat (5)
move (10) steps
change y by (-3)
end
Bueno2
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

lub:
jump
definiuj jump
zmień y o (4)
czekaj (0) s
zmień y o (-4)

my signature was eated by evil omnom-kumquat
Bueno2
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

Your text to link here…

Last edited by Bueno2 (Aug. 31, 2014 09:57:35)


my signature was eated by evil omnom-kumquat
Mateusz2005
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

Można zrobić tak że

When green flag clicked
glide (Sekundy) secs to x:(x miejsce) y:(y miejsce)
stop[all v]

i w Sekundy jak długo ma lecieć i x miejsce y miejsce to tu x i y sceny.
piotr_bala
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

leć przez (1) s do x: (0) y: (0)

powoduje że duszek porusza się do punktu docelowego po linii prostej. A tu chodziło raczej o skok.
Skok można zrealizować składając dwa takie bloki - jeden na podskok, drugi na opadanie. Ale trzeba wcześniej wyznaczyć punkty docelowe co często jest dużo zachodu.
popek04
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

piotr_bala wrote:

leć przez (1) s do x: (0) y: (0) ::motion

powoduje że duszek porusza się do punktu docelowego po linii prostej. A tu chodziło raczej o skok.
Skok można zrealizować składając dwa takie bloki - jeden na podskok, drugi na opadanie. Ale trzeba wcześniej wyznaczyć punkty docelowe co często jest dużo zachodu.


NA PRZYKŁAD::operators
idź do x: (0) y: (0) ::motion
leć przez (0.5) s do x: (10) y: (50) ::motion
leć przez (0.5) s do x: (50) y: (50) ::motion
leć przez (0.5) s do x: (60) y: (0) ::motion

ALBO::operators
idź do x:() y: ()::motion
ustaw kierunek na (0)::motion
ustaw styl obrotu [nie obracaj v]::motion
skok ()

define skok (wysokość skoku)
repeat (180)
przesuń o (wysokość skoku) kroków::motion
obróć o (1) stopni::motion
end

(poprawka z (2014)/(09)/(25)::operators)ALBO z wykorzystaniem zmiennej skok:::operators
skok (20) (-100) (15) (5) (10)
//w tym bloku duszek skoczy z X 20 i Y -100 na wysokość 15 i z szybkością 5 i wyląduje z dokładnością 10
define skok (x) (y) (wysokość) (szybkość) (dokładność)
idź do x: (x) y: (y)
ustaw [skok v] na (wysokość)
powtórz ([podłoga v] z (((2)*(wysokość))/(szybkość)))razy
zmień y o (skok)
zmień [skok v] o ((-1)*(szybkość)
end
jeżeli <([wartość bezwzględna v] z ((pozycja y)-(y)))>(dokładność)>to
ustaw y na (y)//jeśli duszek nie wylądował w miejscu w którym zaczynał
end

//więc do gry możesz użyć takiego bloku:
skok (pozycja x::motion) (pozycja y::motion) (100) (5) (1)

Last edited by popek04 (Sept. 25, 2014 15:13:25)



kiedy zaczynam jako klon ::hat control
sklonuj [siebie v] ::control
usuń tego klona ::cap control
Mateusz2005
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

piotr_bala wrote:

leć przez (1) s do x: (0) y: (0)

powoduje że duszek porusza się do punktu docelowego po linii prostej. A tu chodziło raczej o skok.
Skok można zrealizować składając dwa takie bloki - jeden na podskok, drugi na opadanie. Ale trzeba wcześniej wyznaczyć punkty docelowe co często jest dużo zachodu.


a we wpisie #2 to prostej nie zostawano?
popek04
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

Mateusz2005 wrote:

piotr_bala wrote:

leć przez (1) s do x: (0) y: (0)

powoduje że duszek porusza się do punktu docelowego po linii prostej. A tu chodziło raczej o skok.
Skok można zrealizować składając dwa takie bloki - jeden na podskok, drugi na opadanie. Ale trzeba wcześniej wyznaczyć punkty docelowe co często jest dużo zachodu.


a we wpisie #2 to prostej nie zostawano?
to poruszysz się w linii prostej np.
idź do x: () y: ()
przesuń o () kroków
leć przez () s do x: (0) y: (0)
i inne z ruchu::motion


kiedy zaczynam jako klon ::hat control
sklonuj [siebie v] ::control
usuń tego klona ::cap control
Opisek
Scratcher
1000+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

Mu chyba chodziło o coś takiego:
definiuj skok (wysokość) (długość)
powtórz ((długość::custom)/(2)) razy
zmień y o ((wysokość::custom) / (długość::custom))
zmień x o (1)
end
powtórz ((długość::custom)/(2)) razy
zmień y o (połącz(-)i((wysokość::custom) / (długość::custom)))
zmień x o (1)
end

definiuj skok w tył (wysokość) (długość)
powtórz ((długość::custom)/(2)) razy
zmień y o ((wysokość::custom) / (długość::custom))
zmień x o (-1)
end
powtórz ((długość::custom)/(2)) razy
zmień y o (połącz(-)i((wysokość::custom) / (długość::custom)))
zmień x o (-1)
end
Skrypty bardzo ładnie działają, sam testowałem.
Oto jak to wygląda w praktyce.
(Do tego projektu dodatkowo zastosowałem parametr szybkość)

Last edited by Opisek (Oct. 23, 2014 14:18:06)

mateusz507
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

To jest najprostszy sposób:


kiedy kliknięto zieloną flagę
zmień y o (100)
czekaj (0,5) s
zmień y o (-100)

Last edited by mateusz507 (March 4, 2015 19:52:33)


when green flag clicked
ask [WHO?] and wait
if <(answer) = [you]> then

stop [all v]
end
mateusz507
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

Można też trochę trudniej:



definiuj jump (wysokość)
zmień y o (wysokość)
czekaj (np.1) s
zmień y o ((-1) * (wysokaść))




kiedy kliknięto zieloną flagę
zawsze

ustaw [ wysokość] na [0]
end




kiedy klawisz [spacja] naciśnięty
ustaw [ wysokość] na [100 ]

Za wszystkie błędny w rysunkach przepraszam(dużo nawiasów).

Last edited by mateusz507 (March 4, 2015 19:54:13)


when green flag clicked
ask [WHO?] and wait
if <(answer) = [you]> then

stop [all v]
end
piotr_bala
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

Dwa komenatrze:
1, Przedstawione rozwiązania powodują, że duszek przeskakuje z jednego miejsca w drugie od razu". Elegancki podskok jest wtedy gdy dołaczymy miejsca pośrednie i to tak jak w rzeczywistości - czyli do gróry lecimy najpierw szybciej potem wolniej i wolniej aż się zatrzymujemy. W dół odwrotnie, szybciej i corz szybciej. Jak to zrobić opisywałem już na forum, jest też na stronie http://scratch.icm.edu.pl/podskok-duszka. Fachowo się to nazywa rzut ukośny i będzie na fizyce w gimnazjum (kiedyś było, teraz może dopiero w liceum).

2. W skryptach nie należy mieszać liczb i znaków. W SCRATCHu akurat to działa, ale w “prawdziwych” jeżykach programowania nie musi. Znki to znaki, liczny to liczby i zamiana jednych na drugie wymaga odpowidnich operacji. Stąd połącz “-1” i “wartość” wygeneruje tekst (ciąg znaków). Nam chodzi o liczbę, stą lepiej użyć klocka oznaczajacego mnożenie, wiemy wówczas że wynik jest liczbą: “-1” * “wartość”. Jest to może drobiazg ale przyda się na przyszłość
Minecraftowiec
Scratcher
15 posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

Podesłać wam script na grawitację ? Jest prosty do ogarnięcia, lecz niedopracowany, ale do prostszych projectów bedzie ok.
Opisek
Scratcher
1000+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

@piotrlaba Zgadzam się, ale można też temu zaradzić mniejwięcej tak: (różne języki, różnie to wygląda)
string('-' + wartosc);
W kilku językach, które znam znajduje się funkcja string, zamieniająca tekst na liczbę. Bardzo przydatne, bez tego bym sobie nie poradził w wielu sytuacjach. Czasem nawet takim rozwiązaniem oszczędzam sobie 100 linii kodu.
Aczkolwiek tu w tym przykładzie trzeba się zgodzić, że lepsze będzie mnożenie przez -1, nawet w długości linijki
-1 *= wartość;
Postaram się zrobić taki skrypt z opisanym rzutem ukośnym. Można prosto z grawitacją i początkową zmienną dodatnią y (oraz zmienną x dla poruszania się, ale to nie ma związku co do poprawienia mojego skryptu)
trebuh
New to Scratch
2 posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

jak wgrać scratch do prezentacji multimedialnej?
Tymek12345
Scratcher
9 posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

jak to zrobić?


kiedy kliknięto zieloną flagę
powiedz [https://scratch.mit.edu/projects/103873787/]
powiedz [play!]
kopiuj, by zobaczyć grę!
Enterman
Scratcher
100+ posts

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

To nie takie łatwe

Last edited by Enterman (April 15, 2016 15:16:56)

GabiRog11
New to Scratch
1 post

jak zrobić żeby ludzik przeskakiwał z jednego miejsca na drugie

Powered by DjangoBB