so, here's what i've already got done.
(click to enlarge pictures)
for the player object:
these are the variable's i've created for the player object, with the exception of "grabby".
"grabby" is a global variable, as it will also apply to the grappling hook-esque object.
the "jumpable" variable's use is mostly for determining whether or not the player object is touching the "ground", and therefore can jump.
this is the list of code in control of changes the sprites accoarding to player input and player object ability.
in general, "A" will make the player object turn left, and "D" will make it turn right.
pressing both "A" and "D" simultaneously will make the character face right.
this is my collision code, and it works extraordinarily well.
there are 2 versions of horizontal collision, one if the player character is on the ground, and one if they're in the air.
and there's also a version for vertical collision.
this version checks if vspeed is not equal to 0.
in general, this code will detect collisions along the the character's predicted path in a distance relative to the object's speed, and complete the distance.
also, when the code detects collision below the object character, it will make "jumpable", "true" again.
and this is the movement code.
"A" move the player object left, "D" right.
pressing both "A" and "D" will make the player object stop moving.
both "SPACE" and "W" will make the player jump, assuming they are touching the ground, for that the code checks the "jumpable" variable.
this code also uses a piece of the collision code, to for the purpose of detecting if the player object has 'walked off a ledge', making "jumpable", "false", making the player unable to jump until they land again.
this piece of code is for activating the grappling hook.
when the mouse button is clicked, it will create the hook "obj_grabby_test"
as long as the mouse is held, the hook will follow it.
when the hook latches onto a solid object, a.k.a., when "grabby" is "true", the player object will move towards the grappling hook at a speed relative to the distance to the grappling hook.
for the grappling hook:
there are 4 parts here.
1, the sprite change section.
the sprite will change once it has locked onto a solid object, it will also rotate towards the mouse.
2, the controls section.
most of the controls for this object are actually stored in the player object, but for this, when the left mouse button is released, the instance will destroy itself.
3, the grabby fixation.
this will just set "grabby" to false when it's created.
4, functionality.
this detects collisions, and when it does, it will make "grabby" true, and prevent itself from moving.
when it does move, this makes it move towards the mouse at a speed relative to the distance.