HCP
HCP

Reputation: 9

Cloning Sprites in MIT-Scratch

Recently, in a project for school. I have come across an increasingly frustrating and what seems to be an unsolvable problem. Whilst attempting to create a diving game, in which the sprite of a diver (sprite x) touches clones of a fish sprite (referred to as y by me) to rack up scores as high as 25. While the mechanisms for diver movement appear to be completely fine. However, loading the game would result in no reaction from the fish and its clones. I had already programmed the clones of the fish sprites to hide and delete themselves if touching sprite x. However, the fish refused to clone itself even after many attempts at rewriting the script. I would like to know if there was anything I missed or screwed up. Thank you. And these are the images of the respective scripts of the sprites in links below. Thank you.

Upvotes: 1

Views: 1463

Answers (1)

Mithical
Mithical

Reputation: 624

Here's your problem:

enter image description here

WHEN I RECEIVE "start game"
WAIT (2) SECS
REPEAT (25)
   CREATE CLONE OF "myself"
   WAIT (6) SECS
BROADCAST "game over"

You're starting the game, waiting 2 seconds, cloning the fish 25 times, and then ending the game.

There's at least one issue here, and probably another.

First of all, you're cloning all of the sprites into the exact same spot. The clones are piling on top of each other, giving the appearance of only being one fish, since they're all in the exact same space. I'd advise moving to a random x and y on the stage in between each clone.

Second, you have BROADCAST "game over" immediately there. This works if this is the way you're implementing a time limit on the game, but otherwise, you're just ending the game 6 seconds after the last fish appears.

So, correcting these two things, you end up with something like this:

enter image description here

WHEN I RECEIVE "start game"
WAIT (2) SECS
REPEAT (25)
   GO TO X: ([RANDOM PICK (-200) TO (200)]) Y: ([RANDOM PICK (-150) TO (150)])
   CREATE CLONE OF "myself"
   WAIT (6) SECS

If you want each fish to disappear after 6 seconds, then add a DELETE THIS CLONE to the above script.


You can delete this script:

enter image description here

That's now covered by the other script, above, and is also slightly buggy. It's kinda useless now.

And, in your other script, the one starting WHEN GREEN FLAG CLICKED... to have the fish disappear when touching the diver, replace the WHEN GREEN FLAG clicked with a WHEN I START AS A CLONE.

Upvotes: 2

Related Questions