Discuss Scratch

JJZantor
New to Scratch
3 posts

znikający pisak

Witam,
W jaki sposób można osiągnąć efekt aby ślad po pisaku zanikał np po 2 sekundach? Nie chodzi o wyczyszczenie wszystkiego na raz ale o efekt niczym ciągnący się warkocz komety.
MentolMen
Scratcher
1000+ posts

znikający pisak

Nie jest to łatwe.
Jeżeli chcemy używać pisaka, to może to być bardzo ciężkie.
Jeżeli chcemy do tego celu używać duszka, może to być czasami niewykonalne, ale ogółem łatwiejsze.
Używając pisaka, możemy po prostu malować kolorem tła, to najłatwiejszy sposób, lecz niestety, działa tylko wtedy, kiedy pod pisakiem nie ma innego pisaka, a tło jest jednolitego koloru.
Musisz pokombinować, zależy od tego co i jak robisz. Możesz powiedzieć jak chcesz, aby wyglądała scena programu, albo po prostu udostępnić projekt i napisać jaki chcesz uzyskać wynik mniej więcej. Wtedy będę mógł napisać coś więcej, bo tak rozwiązanie może być banalne, albo wręcz niewykonalne.
AANNTTOONNII
Scratcher
1000+ posts

znikający pisak

Możesz stworzyć drugiego duszka piszącego kolorem tła i sprawić żeby jechał tym samym śladem co duszek 1 tylko wystartował 2s później
przykład:

duszek1
kiedy kliknięto zieloną flagę
ustaw kolor pisaka na [#e6cb83]
przyłóż pisak
leć przez (1) s do x: (100) y: (47)
leć przez (2.5) s do x: (-1) y: (2)
leć przez (0.5) s do x: (0) y: (0)

duszek2
kiedy kliknięto zieloną flagę
czekaj (2) s
ustaw kolor pisaka na [#feffff]
przyłóż pisak
leć przez (1) s do x: (100) y: (47)
leć przez (2.5) s do x: (-1) y: (2)
leć przez (0.5) s do x: (0) y: (0)

Last edited by AANNTTOONNII (Sept. 19, 2018 17:57:36)

JJZantor
New to Scratch
3 posts

znikający pisak

ok. Jest gra gdzie sterujemy duszkiem pixelem. Pixel zostawia ślad pisaka żeby można się było zorientować w kierunku i prędkości poruszania. Chciałbym żeby ślad znikał po ok3 sekundach. Obecnie po kilkunastu sekundach zabawy ekran jest cały zamazany.
MentolMen
Scratcher
1000+ posts

znikający pisak

Obawiam się, że jest to nie do zrobienia w łatwy sposób, sposób który podał antoni będzie zły, bo u Ciebie nie tylko tła, jest tło i pisak. Obecnie widzę to jako zrobienie czegoś takiego:
Wstawiasz każdy ruch tego duszka do listy i lista co chwila generuje obraz. W takiej liście bez problemu będziesz mógł zmazywać ruchy pisaka. Oczywiście nie jest to łatwe, o ile w ogóle możliwe do zrobienia w taki sposób, by działało w miarę dobrze.
Spróbuję zrobić taki projekt, ale nic nie obiecuję.
MentolMen
Scratcher
1000+ posts

znikający pisak

https://scratch.mit.edu/projects/247422144/
Jako tako masz skrypt, można wprowadzić kilka usprawnień, ale to już od Ciebie zależy.
Dałem instrukcje do projektu, ale myślę, że skrypt w miarę czytelny, ale wyjaśnię.
“Duszek1”
Nie rysuje nic. On tylko się porusza(jest ukryty) i dodaje swoje współrzędne do listy.
“Duszek2” Generuje obraz pisakiem. Po prostu chodzi po wszystkich elementach listy, które jak już wiemy, są współrzędnymi Duszka1.

Można to trochę zmodyfikować, np: usuwając powtarzające się elementy listy, bo teraz gdy zatrzymamy się w jednym miejscu, pisak też zrobi taką przerwę. Ale jak już mówiłem, to zależy od Ciebie, ja może dodam jeszcze przechodzenie przez ściany i kilka innych rzeczy.
AANNTTOONNII
Scratcher
1000+ posts

znikający pisak

Hmm… można by poprawić mój sposób tak żeby zapobiec desynchronizacji…
kiedy kliknięto zieloną flagę
ustaw [index v] na [1]
zawsze
czekaj (element (index v) z [list v] :: list) s
nadaj [tick v]
zmień [index v] o (3)
end

Duszek1

kiedy otrzymam [tick v]
idź do x: ((element ((index) + (1)) z [list v] :: list)) y: ((element ((index) + (2)) z [list v] :: list))

Duszek2

kiedy otrzymam [tick v]
jeżeli <[index] > [1]> to
idź do x: ((element ((index) - (2)) z [list v] :: list)) y: ((element ((index) - (1)) z [list v] :: list))
end

Last edited by AANNTTOONNII (Sept. 20, 2018 13:41:58)

Pilonpl
Scratcher
100+ posts

znikający pisak

Lepiej użyć klonów i co trzy sek je usuwać. Jednak ten sposób może lagować. Co do zapisywania obrazu to ja mam projekt zapisywanie ruchu, może gdyby go trochę przerobić coś by wyszło. No ale jak gra jest prosta klony mogą wystarczyć

AANNTTOONNII
Scratcher
1000+ posts

znikający pisak

klony są
a) wolne
b) podatne na lagi
c) może być ich max. nie pamiętam ile (chyba 150)
Pilonpl
Scratcher
100+ posts

znikający pisak

Ale jak jest prosta gra to raczej wystarczy. Pozatym pisałem o tym.

Erixo
Scratcher
100+ posts

znikający pisak

AANNTTOONNII wrote:

klony są
c) może być ich max. nie pamiętam ile (chyba 150)
301 czy jakoś tak

MentolMen
Scratcher
1000+ posts

znikający pisak

Erixo wrote:

AANNTTOONNII wrote:

klony są
c) może być ich max. nie pamiętam ile (chyba 150)
301 czy jakoś tak
300 to limit, ale da się 301 zrobić - tak prostując.
AANNTTOONNII
Scratcher
1000+ posts

znikający pisak

_

Last edited by AANNTTOONNII (Nov. 2, 2018 17:43:53)

MentolMen
Scratcher
1000+ posts

znikający pisak

AANNTTOONNII wrote:

Nieprawda, klonów może być tylko 300 bo 301 to oryginalny duszek, którego nie da się usunąć.
Skąd takie informacje?

Scratch Wiki wrote:

Cloning is a feature that allows a sprite to create a clone, or semi-duplicate, of itself, while the project is running. Clones of a sprite will be the same as the original or parent sprite but as a separate instance. Clones inherit the parent's scripts, costumes, sounds, and properties, yet they can then be modified. There is a limit of 300 clones per project to prevent excessive lagging or crashes, but 301 can be made, as shown by Scratch Team member thisandagain in this project.
U góry jasno napisane, a tutaj jasno pokazane, skrypt wygląda legitnie.
Proponuje, gdy nie wiemy, czy mamy rację na pewno, napisać to, bo tutaj nie widziałem cienia wątpliwości, a jak widać, myliłeś się. To tak mało elegancko po prostu, jakoś mam takie wrażenie, że gdy ktoś w tym momencie wszedłby w dyskusję i zobaczył Twoją wypowiedź, to mógłby błędnych wniosków nabrać.
AANNTTOONNII
Scratcher
1000+ posts

znikający pisak

Usunąłem post… Chociaż nie rozumiem tego…

Powered by DjangoBB