Discuss Scratch
- Discussion Forums
- » Help with Scripts
- » Issue coding for 'obstacles'
- Madysen
- New Scratcher
8 posts
Issue coding for 'obstacles'
http://scratch.mit.edu/projects/17305446/ If someone could take a look at the code for this and explain my problem, I'd be very grateful.
I don't want the character to be able to go beyond the edges of the room. So I tried to make it so that when the sprite is touching the grey colour, he moves in the opposite direction. Therefore ‘bouncing’ off the walls.
Only, if you fiddle around with the arrow keys, you can make him touch a wall and not bounce. Then, when you try to move away from the wall, you instead end up moving INTO the wall.
And I don't want my walls eating people. :\
I don't want the character to be able to go beyond the edges of the room. So I tried to make it so that when the sprite is touching the grey colour, he moves in the opposite direction. Therefore ‘bouncing’ off the walls.
Only, if you fiddle around with the arrow keys, you can make him touch a wall and not bounce. Then, when you try to move away from the wall, you instead end up moving INTO the wall.
And I don't want my walls eating people. :\
- ErnieParke
- Scratcher
1000+ posts
Issue coding for 'obstacles'
The problem with your code is that you check if you're touching grey after you've moved into it. So for example, let's say you walk left into the wall. When you try to walk to the right, your sprite goes, I'm touching grey! Error! Get me out of this wall! And then it moves in the wrong direction, or in other words, left. That's because it thinks the wall is on the right.
One way you could fix this is that instead of using:
Try using:
By the way, welcome Madysen to Scratch! I hope that you'll have a fun time here!
Welcome,
ErnieParke
One way you could fix this is that instead of using:
when [left arrow v] key pressed
switch to costume [LeftC v]
if (touching color [#555]?) then
change x by (15)
else
change x by (-10)
end
Try using:
when [left arrow v] key pressed
switch to costume [LeftC v]
change x by (-15)
if (touching color [#555]?) then
change x by (15)
end
By the way, welcome Madysen to Scratch! I hope that you'll have a fun time here!
Welcome,
ErnieParke
- Madysen
- New Scratcher
8 posts
Issue coding for 'obstacles'
Excellent, thank you so much! I'm still working at figuring out how to recognize the little things like that, but I see what you mean now.
- Discussion Forums
- » Help with Scripts
- » Issue coding for 'obstacles'