<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<script type="text/javascript" language="JavaScript">
function reDo() {
if (innerWidth != origWidth || innerHeight != origHeight)
location.reload();
}
if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
origWidth = innerWidth;
origHeight = innerHeight;
onresize = reDo;
}
onerror = null;
</script>
<style type="text/css">
< !-- div.WebHelpPopupMenu {
position: absolute;
left: 0px;
top: 0px;
z-index: 4;
visibility: hidden;
}
p.WebHelpNavBar {
text-align: right;
}
-->
</style>
<script type="text/javascript">
gRootRelPath = "../../../..";
gCommonRootRelPath = "../../../..";
gTopicId = "9.2.11.3.0_2";
<script type="text/javascript" src="../../../../template/scripts/rh.min.js"></script>
<script type="text/javascript" src="../../../../template/scripts/common.min.js"></script>
<script type="text/javascript" src="../../../../template/scripts/topic.min.js"></script>
<script type="text/javascript" src="../../../../template/scripts/topicwidgets.min.js"></script>
<script type="text/javascript" src="../../../../whxdata/projectsettings.js"></script>
<link rel="stylesheet" type="text/css" href="../../../../template/styles/topic.min.css"/>
<link rel="stylesheet" type="text/css" href="../../../../template/Charcoal_Grey/topicheader.css"/>
<meta name="topic-status" content="Draft"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>physics_fixture_bind</title>
<meta name="generator" content="Adobe RoboHelp 2019"/>
<link rel="stylesheet" href="../../../../assets/css/default.css" type="text/css"/>
<meta name="rh-authors" content="Mark Alexander"/>
<meta name="topic-comment" content="Reference page for physics_fixture_bind"/>
<meta name="rh-index-keywords" content="physics_fixture_bind"/>
<meta name="search-keywords" content="physics_fixture_bind"/>
</head>
<body>
<div class="topic-header rh-hide" id="rh-topic-header" onclick="rh._.goToFullLayout()">
<div class="logo">
</div>
<div class="nav">
<div class="title" title="physics_fixture_bind">
<span>physics_fixture_bind</span>
</div>
<div class="gotohome" title="Click here to see this page in full context">
<span>Click here to see this page in full context</span>
</div>
</div>
</div>
<div class="topic-header-shadow rh-hide" id="rh-topic-header-shadow"></div>
<h1>physics_fixture_bind</h1>
<p>Once we have defined our fixture it has to be bound to an instance. This means that its <i>properties</i> are transferred to the selected instance, <b>not the actual fixture itself</b>, so that one fixture can be bound to multiple instances if all are
to have the same properties. You can specify an object index for the target and all instances present in the room at the time will receive that fixtures properties (but not any new instances of the object created later), or you can use the special
keywords <i>other</i> and <i>all</i>. You can even specify a parent object and all children instances with that parent will also receive the fixture. Once the fixture has been bound to all the instances that you need, it can be deleted if no longer
necessary and the instances with that fixtures properties will not be affected and maintain those properties.</p>
<p>The fixture will be bound to the instance with the center of mass being positioned at the origin of the instance, and polygon fixtures are bound based on the position of the points <i>relative</i> to the origin. If you require your fixture to be bound
to a point other than the origin then you should be using <a href="physics_fixture_bind_ext.htm"><tt>physics_fixture_bind_ext()</tt></a>.</p>
<p><img alt="Physics fixture binding example" class="center" src="../../../../assets/Images/Scripting_Reference/GML/Reference/Physics/physics_fixture_bind_image.png"/>The function will also return a unique "id" value for the <i>bound</i> fixture
(<b>not the fixture itself</b>) which can then be used to remove ("un-bind") the physics properties from the instance using the function <a href="physics_remove_fixture.htm"><tt>physics_remove_fixture()</tt></a>. This permits you to add
and remove physical properties from an instance without destroying and re-creating objects.</p>
<p class="note"><b>NOTE</b>: Fixtures should be deleted when no longer needed as failure to do so may cause a memory leak which will slow down and eventually crash your game.</p>
<p> </p>
<h4>Syntax:</h4>
<p class="code">physics_fixture_bind(fixture, target)</p>
<table>
<tbody>
<tr>
<th>Argument</th>
<th>Description</th>
</tr>
<tr>
<td>fixture</td>
<td>the fixture that is to be bound</td>
</tr>
<tr>
<td>target</td>
<td>the target instance that is to receive the fixture (can be an instance id, an object id, <i>other</i>, or <i>all</i>)</td>
</tr>
</tbody>
</table>
<p> </p>
<h4>Returns:</h4>
<p class="code">Real</p>
<p> </p>
<h4>Example:</h4>
<p class="code">var fix, inst;<br/> fix = physics_fixture_create();<br/> physics_fixture_set_circle_shape(fix, 16);<br/> physics_fixture_set_density(fix, 1.0);<br/> inst = instance_create_layer(x, y, "Instances", genericBodyObject);<br/> my_fix = physics_fixture_bind(fix,
inst);<br/> physics_fixture_delete(fix);
</p>
<p>The code above will create a fixture and assign its index to the variable "fix". It then defines the shape and density of the fixture before binding it to the instance that was created with the index for the <b>bound</b> fixture stored in
the variable "my_fix". Finally, the fixture is deleted to prevent memory leaks as it is no longer needed.</p>
<p> </p>
<p> </p>
<p> </p>
<div class="footer">
<div class="buttons">
<div class="clear">
<div style="float:left">Back: <a href="Fixtures.htm">Fixtures</a></div>
<div style="float:right">Next: <a href="physics_fixture_bind_ext.htm">physics_fixture_bind_ext</a></div>
</div>
</div>
<h5>© Copyright YoYo Games Ltd. 2020 All Rights Reserved</h5>
</div>
</body></html>