<?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.1.0_25";
<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>method</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="Page explaining the function method"/>
<meta name="rh-index-keywords" content="method"/>
<meta name="search-keywords" content="method"/>
</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="method">
<span>method</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>method</h1>
<p>With this function you can bind any function that has previously been defined to a given instance or struct, creating a <a href="../../GML_Overview/Method_Variables.htm">method variable</a> that can
be used later. You supply the instance ID to use (it <i>must</i> be an instance that is active and in the room, and can't be an object ID) or a struct reference, as well as the ID of the function that you want to bind.
The function will return a <a class="tooltip" title="In GameMaker, a method is the name given to a user-defined function that has been bound to an instance, so that the instance variable is the name of the funtion and what you use to call it.">method</a> which can be called from the variable it is assigned to (see the code example below). It is worth noting that you can bind built-in functions as well as user
defined functions, and you can also supply <tt>undefined</tt> as the instance/struct argument meaning that the current <a href="../../GML_Overview/Instance_Keywords.htm"><tt>self</tt></a> scope will
be used for the binding.</p>
<p> </p>
<h4>Syntax:</h4>
<p class="code">method(struct_ref_or_instance_id, function);</p>
<table>
<tbody>
<tr>
<th>Argument</th>
<th>Description</th>
</tr>
<tr>
<td>struct_ref_or_instance_id</td>
<td>The unique reference or ID value of the struct or instance to use (or <tt>undefined</tt> for <tt>self</tt>)</td>
</tr>
<tr>
<td>function</td>
<td>The ID of the function to use</td>
</tr>
</tbody>
</table>
<p> </p>
<h4>Returns:</h4>
<p class="code">Method</p>
<p> </p>
<h4>Example:</h4>
<p class="code">var _inst = instance_position(mouse_x, mouse_y, obj_Enemy);<br/> if instance_exists(_inst)<br/> {
<br/> enemy_func = method(_inst, enemy_ai);<br/> }
</p>
<p>The above code will check to see if an instance exists at the given position and if it does then a function is bound to the instance and returned as the method variable "enemy_func".</p>
<p> </p>
<p> </p>
<p> </p>
<div class="footer">
<div class="buttons">
<div class="clear">
<div style="float:left">Back: <a href="Variable_Functions.htm">Variable Functions</a></div>
<div style="float:right">Next: <a href="method_get_self.htm">method_get_self</a></div>
</div>
</div>
<h5>© Copyright YoYo Games Ltd. 2020 All Rights Reserved</h5>
</div>
</body></html>