Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to tell which edge was touched in Scratch?

In Scratch, there is a condition in the sensing category called touching, that can have edge as a parameter.

Given that the condition returns true, how can I tell which edge was touched (i.e. top, bottom, left or right edge of scene)?

Alternatively: How to tell the dimensions of a scene? I have worked out that position (x=0, y=0) is in the middle of the scene. Where are the four corner points located?

like image 314
Daren Thomas Avatar asked Jan 12 '10 16:01

Daren Thomas


3 Answers

Make 4 sprites, all thin lines of any color you want. Two vertical, and two horizontal. Place them at the edges of your project. Add a start block followed by a set effect ghost to 100 block in each of these four lines. This hides the line when the project is played. If you name the lines top, bottom, left, right, it's easy to test which edge a different sprite touches, because you can have blocks run after one sprite touches another (the edges).

The whole project is 360 tall and 480 wide, with 0,0 being in the exact center. Always.

like image 59
Nick McCurdy Avatar answered Nov 16 '22 12:11

Nick McCurdy


You could also do it like this:

If x > 239 then do something

(Change the value 239 (or less) to your purpose, and you could track the right edge) and x<-239 if you track left side.

like image 35
user2144827 Avatar answered Nov 16 '22 13:11

user2144827


In category Sensing there is a touching x? block. x can be selected as edge.

like image 41
tscpp Avatar answered Nov 16 '22 13:11

tscpp