Well, luckily I wrote the example so that it was almost immediately portable to GM8.1, so here you go:
http://www.mediafire.com/file/21yseodxo2z2dtx/GMC_force_field_alpha_effect.gm81
Oh, then you're definitely going to be afraid of the example I linked to ... sorry.
Arrays, surfaces and blend mode aren't that difficult of a concept though.
Arrays:
Suppose you have variables with the following names: myvar1, mayvar2, myvar3, ..., myvar100.
You can imagine maintaining so many individual variables is not handy at all.
Well, arrays combine multiple variables in 1 name.
The variables would become: myvar[0], myvar[1], myvar[2], ..., myvar[99].
You can now use these in just the same way you would use normal variables.
However, you can do even more!
Take a look at this example:
Code:
myvar[0] = 0;
myvar[1] = "hello!";
myvar[2] = 6;
k = 5;
show_message(myvar[k-4]);
Put this in a create event and run it, you'll see the message "Hello!" appear.
Do you understand why?
In GM8.1 there isn't really much more to arrays than just that.
There are a couple of awkward details, but those aren't important for now.
There are also 2D arrays.
What I described above are 1D arrays, you provide 1 index to the array.
In a 2D array, you provide 2 indices:
Code:
a[0,0] = 5;
a[0,1] = 6;
a[1,0] = 9;
a[1,1] = 0;
Surfaces:
You usually draw things to the screen.
Surfaces are invisible canvases where you can draw to instead.
You create a surface, which is a recangle (using surface_create).
You tell GameMaker you want to start drawing on it (using surface_set_target).
You perform some draw functions (they don't need to be in the draw event for suraces).
Everything you draw, gets drawn to the surface.
You then tell GameMaker you're currently done drawing to the surface (using surface_reset_target).
You can then draw the surface whenever you want to te screen (using functions such as draw_surface).
When you don't need the surface anymore, you can remove it and free its memory (using surface_free).
Blend modes:
They change how alpha values have an effect on colors.
They're a bit more of an advanced feature though.
Some cool effects you can achieve with blend modes is inverting the colos of an area on the screen.
Now, I suggest you'd first experiment a bit with how arrays work and can be used, as they are a really handy feature.
Also take a look at for-loops, they work very nicely together with arrays.