group.bounceOff
Makes each sprite in the group bounce off the target when they touch each other. The target keeps moving as before.
Most games will involve sprites colliding with each other. There are four types of collisions available in Game Lab: bounce
, bounceOff
, collide
and displace
. These blocks will cause a certain type of interaction between each sprite and its target and must be used within the draw
function.
Examples
Stay Cool
Keep all the bad vibes from getting you down! Use the mouse to move around your emoji and stop the mean emojis from reaching the bottom
// Stay cool! Keep all the bad vibes from getting you down.
// Uses createGroup to make a bunch of bouncing baddies,
// createEdgeSprites to make sure the baddies don't just fly off.
var cool = createSprite(200, 325);
cool.setAnimation("cool");
createEdgeSprites();
var group = createGroup();
for (var i = 0; i < 20; i++) {
var sprite = createSprite(randomNumber(0, 400), randomNumber(0, 100), 10, 10);
sprite.velocityY=randomNumber(5, 10);
sprite.velocityX=randomNumber(-5, 5);
sprite.bounciness = 1
group.add(sprite);
}
group.setAnimationEach("mean");
function draw() {
background("white");
drawSprites();
cool.x = World.mouseX;
group.bounceOff(cool);
group.bounceOff(topEdge);
group.bounceOff(leftEdge);
group.bounceOff(rightEdge);
}
Syntax
group.bounceOff(target)
Parameters
Name | Type | Required? | Description |
---|---|---|---|
target |
Returns
Tips
- All four of the collisions are similar to including an "if (sprite.isTouching(target))" in the
draw
function, and then depending on the collision type, updating the sprite and targetvelocityX
andvelocityY
properties. - Only one of the four types of collisions should be specified for each pair of sprites.
- To fine tune your collision detection use
setCollider
to change the shape and size of the collider area and setdebug
to true for the sprites. - A sprite that is not visible can still collide with other sprites and user mouse interactions.
Found a bug in the documentation? Let us know at support@code.org.