instance_place(x, y, obj);
Argument | Description |
---|---|
x | The x position to check for instances. |
y | The y position to check for instances. |
obj | The object to check for instances of. |
Returns: Real
With this function you can check a position for a collision with another instance or all instances of an object using the collision mask of the instance that runs the code for the check. When you use this you are
effectively asking GameMaker: Studio to move the instance to the new position, check for a collision, move back and tell you if a collision was found or not. This will work for precise collisions,
but only if both the instance and the object being checked for have precise collision masks selected otherwise only bounding box collisions are applied. this function will return the unique
instance id of the object being collided, but if that is not needed it is slightly faster to use the function
place_meeting. This function also accepts the special keywords all and other
and will return the keyword noone if no collision occurs.
Note that the given x/y coordinates will be rounded to the nearest integer before the check is performed, so if this is not what you require (or you have been using a legacy GameMaker product), you should
floor the coordinates in the check: instance_place(floor(x), floor(y), obj_Enemy).
Example:
var inst;
inst = instance_place(x, y, obj_Enemy);
if inst != noone
{
hp -= inst.dmg;
with (inst) instance_destroy();
}
The above code will check for a collision with instances of "obj_Enemy" and if there is one, it will reduce the "hp" variable by the amount stored in the colliding instance's "dmg" variable and then destroy the colliding instance.