Pastebin launched a little side project called HostCabi.net, check it out ;-)Don't like ads? PRO users don't see any ads ;-)
Guest

Variable Scope

By: a guest on Jul 6th, 2013  |  syntax: None  |  size: 2.12 KB  |  hits: 7  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. There are only three scopes for variables in GM:
  2.  
  3. Constant - A constant holds a value determined before you compile the game, listed in the IDE itself. You cannot create or destroy a constant in game. Constants are **read-only!** Constants can be accessed by any object or script in the game with the following syntax:
  4.  
  5.     if (someLocalVariable == tau) // for this example, 'tau' is a constant set to 6.283185307179586476925286766559
  6.         { show_message("someLocalVariable is equivalent to 2 x 3.1415926535897932384626433832795!"); }
  7.  
  8. Global - A global variable holds a value determined whenever you create it for the rest of the program's run time. You can only create global variables. Global variables are fully accessible in game. Global variables can be accessed by any object or script in the game with the following syntax:
  9.  
  10.     global.thisIsAGlobalVariable = 4; // for this example, 'thisIsAGlobalVariable' and 'points' are global variables
  11.     global.points = 0;
  12.     global.points += 7;
  13.  
  14. Local - A local variable holds a value determined by an objects code for a single instance of that object. You can only create local variables. Local variables are fully accessible in game. Local variables can be accessed by the calling instance with the following syntax:
  15.  
  16.     thisIsALocalVariable = 0; // 'thisIsALocalVariable', 'index', 'someOtherLocalVariable', and 'anotherLocalVariable' are all local variables
  17.     index = 42;
  18.     someOtherLocalVariable = thisIsALocalVariable+index;
  19.     anotherLocalVariable = "Hello World!";
  20.  
  21. Local variables of another currently existing instance can be accessed by prefixing the instance's unique ID with the following syntax:
  22.  
  23.     ball = instance_create(room_width*0.5,room_height*0.5,obj_ball);
  24.     ball.size = 32;
  25.     ball.image_speed = 0.2;
  26.     with(ball) // Here, nested in a with statement, we can again access to our own variables using the 'other' keyword. If we didn't prefix doneMakingBall with 'other.' the instance we created earlier, 'ball', would instead set doneMakingBall to 1!
  27.         { other.doneMakingBall = 1; }
  28.  
  29. Well, I hope that clears up any issues with scope! Good luck!