Discuss Scratch

koeky
Scratcher
17 posts

kan in speler gesleept worden

Waarvoor dient dit?

Koeky | Studio Koeky
when [favoriet v] link pressed
go to [ my favorite project]
favoriet
heldlaw
Scratcher
100+ posts

kan in speler gesleept worden

Als ‘kan in speler gesleept worden’ aan staat voor een bepaalde sprite, dan kan die sprite altijd en overal met de muis versleept worden. Soms is dat leuk, maar vaak wil je dat sprites alleen bewegen zoals dat beschreven staat in het script; daarom staat dit standaard uit. Je kunt de sprite dan alleen verslepen als je in de editor zit ('bekijk van binnen'); ‘gewone’ bezoekers die jouw project bekijken/spelen, kunnen je creatie dan niet in de war sturen.

'Kan in speler gesleept worden' betekent overigens niet dat bezoekers iets permanent kunnen wijzigen aan het project; alleen de eigenaar kan dat. Als een bezoeker een sprite versleept, dan zal niemand anders die wijziging zien, en de wijziging is ook weer weg als de bezoeker het project opnieuw inlaadt (de webbrowser ververst).

“The First Rule of Programming: It's Always Your Fault” – Jeff Atwood
koeky
Scratcher
17 posts

kan in speler gesleept worden

Dank voor de heldere uitleg, hier kon ik nog lang naar zoeken…
Heb het getest, en 't klopt!

Koeky | Studio Koeky
when [favoriet v] link pressed
go to [ my favorite project]
favoriet
JSO
Scratcher
21 posts

kan in speler gesleept worden

heldlaw heeft het goed uitgelegd.

Ik heb het altijd een beetje een vreemd knopje gevonden, want je kan een sprite best hetzelfde laten doen met een niet al te ingewikkeld Scratch script. Het gedrag van dat slotje is ook moeilijk aan te passen: stel, je bent een spel aan het maken waar je een obstakel kan verplaatsen, en je hebt daarvoor die “kan in speler gesleept worden” functie aangezet. Maar nu wil je je spel aanpassen zodat je het obstakel maar af en toe kan verplaatsen, dus niet altijd. Dit wordt ineens moeilijk!

Maar hoe zou zo'n scriptje er dan uitzien? Het eenvoudigste Is ongeveer zo:

wanneer groene vlag wordt aangeklikt
herhaal
wacht tot <<muis ingedrukt?> en <raak ik [muisaanwijzer v] ?>>
herhaal tot <niet <muis ingedrukt?>>
ga naar [muisaanwijzer v]
end
end

Als je dat uitprobeert, zal je merken dat het midden van je sprite elke keer naar de muis verspringt eens je begint te slepen. Om dit op te lossen, kan je twee variabelen gebruiken, die bijhouden hoe ver de muis van het midden van de sprite was toen je begon te slepen. Dat ziet er dan zo uit:

wanneer groene vlag wordt aangeklikt
herhaal
wacht tot <<muis ingedrukt?> en <raak ik [muisaanwijzer v] ?> >
maak [x afstand v] ((x-positie) - (muis x))
maak [y afstand v] ((y-positie) - (muis y))
herhaal tot <niet <muis ingedrukt?>>
maak x ((muis x) + (x afstand))
maak y ((muis y) + (y afstand))
end
end

Dit werkt net hetzelfde als het “slotje” uitschakelen, en je kan steeds aanpassingen maken wanneer je die nodig hebt!

Last edited by JSO (June 1, 2015 21:06:01)

Powered by DjangoBB