Wie macht man eine unsichtbare Wand in Scratch?
Hallo, ich benutze seit kurzer zeit das Programm Scratch. Bei meinem Projekt brauche ich aber eine unsichtbare Wand, durch die man nicht durch kann. Weiß einer von euch wie das geht?
2 Antworten
![](https://images.gutefrage.net/media/user/ShinyArmageddon/1582149786529_nmmslarge__0_0_900_900_f494371f3478f7ae4d830c518f0d711d.jpg?v=1582149787000)
Das Objekt der Wand abfragen, ob sie die bewegten Objekte berührt und dementsprechendes Feedback senden (Liste/Variable/'Sende') oder du nimmst den mathematischen Ansatz (in Liste speichern: Dicke Wand, Punkt A, Punkt B --> Entfernung Punkt zu Gerade [Objekt zu Wand] berechnen)
Nachtrag: Etwas genauere Informationen zu deinem Projekt wären ganz nützlich evtll. auch Screenshots. Nutzt du Scratch 2.0 - Downloadapplikation?
![](https://images.gutefrage.net/media/user/ShinyArmageddon/1582149786529_nmmslarge__0_0_900_900_f494371f3478f7ae4d830c518f0d711d.jpg?v=1582149787000)
Okay - dann dürfte nur der mathematische Ansatz funktionieren ...
![](https://images.gutefrage.net/media/user/ShinyArmageddon/1582149786529_nmmslarge__0_0_900_900_f494371f3478f7ae4d830c518f0d711d.jpg?v=1582149787000)
Also - das ist jetzt etwas blöd, dass in den neueren Sratch-Versionen unsichtbare Objekte keine Kollisionsabfragen machen können.
Der Ansatz wäre, die beiden Eckpunkte der Wand zu definieren, also z.B. A(-10|-10) und B(46|90).
Dann ergibt sich die Geradengleichung g:x = (-10|-10) + r * (46 - (-10)|90 - (-10))
= (-10|-10) + r * (56|100).
Nun muss man mit dem Lotfußverfahren (benötigt leider viel Rechenaufwand, was bei Scratch nie gut ist, da Programme schnell laggen; man muss nämlich ein Gleichungssystem auflösen und kann nicht einfach so drauflos rechnen) den nächsten Punkt zum Objektpunkt C berechnen:
https://www.youtube.com/watch?v=mdtJjvsYdQg (Da wir im 2-dimensionalen Raum sind, kann man einfach die 3. Koordinate konstant setzen - also auch gleich weglassen)
Nun den Abstand von diesem Lotpunkt D zu C berechnen: https://www.youtube.com/watch?v=gjtQcIG1B2c
Wenn dieser Abstand kleiner ist, als die Dicke der Wand und die Dicke r des Objektes addiert [in diesem Fall hätte man eine kreisförmige Hitbox mit dem Radius r], dann kollidieren die Objekte. WICHTIG: Ist das r der Geradengleichung kleiner 0 oder größer 1 stattdessen mit 0 oder 1 rechnen.
![](https://images.gutefrage.net/media/user/ShinyArmageddon/1582149786529_nmmslarge__0_0_900_900_f494371f3478f7ae4d830c518f0d711d.jpg?v=1582149787000)
Alternativ kann man auch einfacher programmieren und dafür mehr Rechenaufwand in Kauf nehmen: Gleiches Verfahren, nur dass r nicht im Gleichungssystem bestimmt wird, sondern die Kollisionsabfrage einfach ununterbrochen für verschiedene r geschieht. Also erst 0,01, dann 0,02, dann 0,03 [...] dann 0,99, dann 1,00 und dann wieder bei 0 beginnend
![](https://images.gutefrage.net/media/default/user/12_nmmslarge.png?v=1551279448000)
Du gehst unter Effekte ( Die findest du unter Looks, also die lila Blöcke ) und wählst den Ghost Effekt ( auf deutsch glaube ich Durchsichtigkeit) aus und stellst diesen auf 100% und fügst in dein Skript für die Wand ein
Also ich benutze eigentlich das Programm S4A von Kosmos, das ist aber exakt das gleiche nur, dass man mit dem Programm LEDs und so weiter einschalten kann.