^ I think for GM users, instance variables is easier to understand than fields =w=b
<snip>
http://i.imgur.com/cfpVeCp.png
I would like to start a game maker thread on here but I don't know if many people on here would be interested.
Long story short - yes I'm interested in a game maker thread, there's a lot everyone can gain from discussing what they know
also here's some comments about your code, sharing it here so WishMakers can also benefit
(for a 1.5 month coder, you're doing unusually great!)
I looked at the Reimu homing code and was wondering why
angle_difference was highlighted in orange like it was a default function
Then checked in GM and found out that it *is* a default function \o/
*looks like it was added to GM:Studio Early Access some time last year February
*for years people had to settle with custom angle difference scripts (i.e. copy pasting from gmlscripts.com)
*learn something new everyday!
Then I came across
script_execute in your code, seems to be a new function so i looked into the GM help file - it's pretty neat if you know how to use it.
But yeah it looks like you don't know how to normally call scripts, so here's how:
script1()
script2(argument0,argument1,etc...)
compared to this that also works, but is longer than it should be
script_execute(script1)
script_execute(script2,argument0,argument1,etc...)
*there's a specific use for this, and plainly calling functions is not one of them
For gradual power levels, your if-statements can be shortened to this:
if global.pow < 8
{
// first level
}
else if global.pow < 16
{
// second level
}
else if global.pow < 32
{
// third level
}
*conciseness keeps code readable, and readability helps when you need to fix stuff later
Also your choice of having your player shoot one bullet object that can function as several bullet types is unusual - did you do that so the enemy objects don't have to check collisions against more than one bullet object (type)?
If that's the case, that's what object parents are for

*If your enemy bullets are also designed this way, then disregard what I said - you probably have your own reasons for coding that way
(I still think setting those variables in Reimu A, shot_type=0 every step is a waste though, can be done just once in create event / script / alarm)