Group
In p5.game groups are collections of sprites with similar behavior. For example a group may contain all the sprites in the background or all the sprites that "kill" the player.
Groups are "extended" arrays and inherit all their properties e.g. group.length
Since groups contain only references, a sprite can be in multiple groups and deleting a group doesn't affect the sprites themselves.
Sprite.remove() will also remove the sprite from all the groups it belongs to.
Table of Contents
Constructor
Group
()
Methods
_groupCollide
-
type
-
target
-
callback
Collide each member of group against the target using the given collision type. Return true if any collision occurred. Internal use
Parameters:
-
type
!stringone of 'overlap', 'collide', 'displace', 'bounce'
-
target
ObjectGroup or Sprite
-
[callback]
Function optionalon collision.
Returns:
True if any collision/overlap occurred
bounce
-
target
-
callback
Checks if the the group is overlapping another group or sprite. If the overlap is positive the sprites will bounce affecting each other's trajectories depending on their .velocity, .mass and .restitution.
The check is performed using the colliders. If colliders are not set they will be created automatically from the image/animation bounding box.
A callback function can be specified to perform additional operations when the overlap occours. The function will be called for each single sprite overlapping. The parameter of the function are respectively the member of the current group and the other sprite passed as parameter.
Parameters:
-
target
ObjectGroup or Sprite to check against the current one
-
[callback]
Function optionalThe function to be called if overlap is positive
Returns:
True if overlapping
Example:
group.bounce(otherSprite, explosion);
function explosion(spriteA, spriteB) {
spriteA.remove();
spriteB.score++;
}
clear
()
Removes all references to the group. Does not remove the actual sprites.
collide
-
target
-
callback
Checks if the the group is overlapping another group or sprite. If the overlap is positive the sprites in the group will be displaced by the colliding one to the closest non-overlapping positions.
The check is performed using the colliders. If colliders are not set they will be created automatically from the image/animation bounding box.
A callback function can be specified to perform additional operations when the overlap occours. The function will be called for each single sprite overlapping. The parameter of the function are respectively the member of the current group and the other sprite passed as parameter.
Parameters:
-
target
ObjectGroup or Sprite to check against the current one
-
[callback]
Function optionalThe function to be called if overlap is positive
Returns:
True if overlapping
Example:
group.collide(otherSprite, explosion);
function explosion(spriteA, spriteB) {
spriteA.remove();
spriteB.score++;
}
contains
-
sprite
Checks if the group contains a sprite.
Parameters:
-
sprite
SpriteThe sprite to search
Returns:
Index or -1 if not found
displace
-
target
-
callback
Checks if the the group is overlapping another group or sprite. If the overlap is positive the sprites in the group will displace the colliding ones to the closest non-overlapping positions.
The check is performed using the colliders. If colliders are not set they will be created automatically from the image/animation bounding box.
A callback function can be specified to perform additional operations when the overlap occurs. The function will be called for each single sprite overlapping. The parameter of the function are respectively the member of the current group and the other sprite passed as parameter.
Parameters:
-
target
ObjectGroup or Sprite to check against the current one
-
[callback]
Function optionalThe function to be called if overlap is positive
Returns:
True if overlapping
Example:
group.displace(otherSprite, explosion);
function explosion(spriteA, spriteB) {
spriteA.remove();
spriteB.score++;
}
draw
()
Draws all the sprites in the group.
get
-
i
Gets the member at index i.
Parameters:
-
i
NumberThe index of the object to retrieve
indexOf
()
Same as Group.contains
maxDepth
()
Number
Returns the highest depth in a group
Returns:
The depth of the sprite drawn on the top
minDepth
()
Number
Returns the lowest depth in a group
Returns:
The depth of the sprite drawn on the bottom
overlap
-
target
-
callback
Checks if the the group is overlapping another group or sprite. The check is performed using the colliders. If colliders are not set they will be created automatically from the image/animation bounding box.
A callback function can be specified to perform additional operations when the overlap occurs. The function will be called for each single sprite overlapping. The parameter of the function are respectively the member of the current group and the other sprite passed as parameter.
Parameters:
-
target
ObjectGroup or Sprite to check against the current one
-
[callback]
Function optionalThe function to be called if overlap is positive
Returns:
True if overlapping
Example:
group.overlap(otherSprite, explosion);
function explosion(spriteA, spriteB) {
spriteA.remove();
spriteB.score++;
}
remove
-
item
Removes a sprite from the group. Does not remove the actual sprite, only the affiliation (reference).
Parameters:
-
item
SpriteThe sprite to be removed
Returns:
True if sprite was found and removed
removeAll
()
Removes all the sprites in the group from the scene.
size
()
Same as group.length
toArray
()
Returns a copy of the group as standard array.
Properties
debug
Boolean
Sets each sprite in this group to debug mode. This draws an outline of the collider, the depth, and center.
Default: false
ignoreCollisions
Boolean
Whether or not collisions are ignored in this group. Can be used to toggle
collisions off for the whole group. If set to false
, no sprites will trigger
a collision, regardless of the individual sprite's ignoreCollisions
property.
If set to true
, all sprites may trigger a collision, except those whose
individual ignoreCollisions
setting is true
.
Default: false
visible
Boolean
The group's visibility. If set to false
, all sprites will be invisible,
regardless of the individual sprite's visible
property. If set to true
,
all sprites will be visible, except those whose visible
property is false
.
Default: true