by Jon (Updated on 2015-10-18)
Attributes are often thought to be like "local variables" or variables that are linked to a behavior. What if you want to know the value of attributes from other behaviors? Or what if you want to change those other values?
Getting an value of an attribute requires at least 2 pieces of information, sometimes 3.
All of the blocks for getting (and setting) attribute values are located under Behavior > Attributes.
This process is facilitated by Stencyl, but before we get to that, let's step back a bit and understand what each of the blanks mean, so you aren't lost when you browse your logic later on.
Now that you know this, rest assured that you don't need to type in the attribute and behavior names directly.
Just click on the dropdown arrow for the blank, expand out Attribute Names and pick out the desired Attribute.
Doing this will automatically fill out the field with the Attribute's internal name AND its Behavior's full name.
Aside: The strange name: "ActorEvents_1" stems from the fact that the "Events" page for an Actor or a Scene is represented as a hidden behavior behind the scenes, as you may recall from Chapter 2's lesson on Events.
Setting the value of an attribute is similar to getting it. The only difference is that you have to provide the value you wish to set the attribute to.
Note: Take care to set the values to the appropriate type. That is to say, don't try dumping a text value into a Boolean attribute. This will cause errors at compile-time or run-time.
Back in Chapter 4, we made a Level Selector for the Changing Scenes lesson.
In this example, we used an Attribute setter block to assign each level button a number corresponding to the scene it would lead to (and what number it would visually display on the button itself).
Note: The +1 is to account for the fact that computers count, starting from 0, but it would look strange to a regular player to see "Level 0"